



















Preview text:
lOMoAR cPSD| 58137911
MÁY TÍNH – CÁC KHÁI NIỆM VÀ CÔNG NGHỆ 1. GIỚI THIỆU
- Máy tính – cuộc cách mạng thứ ba của nền văn minh (cùng với cuộc cách mạng về nông nghiệp và công nghiệp)
- Xu hướng nghiên cứu khoa học mới:
• Các nhà khoa học tính toán, lý thuyết và thực nghiệm cùng hợp tác nhau trong việc khám phá ra
những thành tựu mới trong thiên văn học, sinh học, hóa học, vật lý…
- Những ứng dụng ược xem là “khoa học viễn tưởng” trước ây:
• Máy tính trong ô tô (Computers in automobiles)
• Điện thoại (Cell phones)
• Dự án di truyền học người (Human genome project) • World Wide Web
• Công cụ tìm kiếm (Search engines)
- Máy tính ược sử dụng trong 3 lớp ứng dụng chính:
+ Máy tính ể bàn (Destop computers)
• Sử dụng bởi cá nhân, thường tích hợp màn hình hiển thị (graphic display), chuột (mouse) và bàn phím (keyboard)
• Hiệu năng tốt ối với người dùng ơn lẻ, mức chi phí thấp, và thường ược dùng ể thực thi các phần
mềm của hãng thứ ba, hay còn gọi là shrink-wrap software
• Là máy tính phổ biến nhất, cũng ược biết ến với tên gọi máy tính cá nhân (personal computer) hay
máy tính a dụng (general-purpose computer) + Máy chủ (Servers)
• Dùng ể chạy các chương trình lớn hoặc có nhiều người dùng ồng thời và thường ược truy cập qua hình thức mạng
• Máy chủ có thể chạy ứng dụng ơn có tính phức tạp cao (như ứng dụng kĩ thuật và khoa học), hoặc
iều khiển nhiều công việc nhỏ (như khi xây dựng một máy chủ Web lớn)
• Những ứng dụng này thường dựa trên các phần mềm phát triển từ một nguồn khác (như hệ thống
cơ sở dữ liệu hoặc mô phỏng), và thường ược hiệu chỉnh ể phù hợp với một chức năng cụ thể
• Máy chủ ược xây dựng theo cùng công nghệ như máy tính ể bàn, nhưng cung cấp khả năng mở
rộng lớn về mặt tính toán và số lượng các ngõ nhập xuất (hiệu năng của máy chủ ược o bằng nhiều
cách, tùy thuộc vào ứng dụng ược dùng)
• Có nhiều loại khác nhau về chi phí và công suất:
• Low-end servers: ược sử dụng trong các ứng dụng lưu trữ, ứng dụng cho doanh nghiệp nhỏ, dịch
vụ web, có thể không kèm màn hình và bàn phím, chi phí khoảng 1000$ o Supercomputers: lOMoAR cPSD| 58137911
▪ Thường dùng cho các công việc tính toán kĩ thuật và khoa học phức tạp và cao cấp,
VD như dự báo thời tiết, khai phá dầu mỏ, tìm ra cấu trúc của protein… với hiệu năng cao nhất
▪ Bao gồm hàng trăm ến hàng ngàn bộ xử lý, cùng với bộ nhớ kích cỡ gigabytes ến
terabytes và khả năng lưu trữ dữ liệu gigabytes ến terabytes, chi phí hàng triệu ến hàng trăm triệu ôla
o Datacenter: mặc dù không ược gọi với tên supercomputers, các Internet datacenters ược sử
dụng bởi những công ty như eBay, Google cũng chứa hàng ngàn bộ xử lý, với bộ nhớ hàng
terabytes, và khả năng lưu trữ hàng petabytes. Datacenter thường ược xem như là các cụm máy tính lớn
+ Máy tính nhúng (Embedded computers)
• Là máy tính bên trong một thiết bị nào ó, ược dùng ể chạy một ứng dụng hay một tập hợp các
phần mềm ịnh trước; là lớp máy tính phổ biến nhất và trải rộng nhất về mặt ứng dụng và hiệu năng
• Máy tính nhúng: bao gồm các vi xử lý (microprocessor) ược tìm thấy trong máy giặt, xe hơi, iện
thoại, tivi kĩ thuật số…
• Hệ thống tính toán nhúng: ược thiết kế ể chạy một ứng dụng hoặc một tập các ứng dụng có liên
quan, thường ược tích hợp với phần cứng và phân phối như một hệ thống ơn; theo ó, mặc dù các
máy tính nhúng rất phổ biến, a số người dùng không bao giờ thật sự nhận ra họ ang dùng một máy tính
• Yêu cầu quan trọng nhất của ứng dụng nhúng là ạt ược hiệu năng hoạt ộng cần thiết tối thiếu với
chi phí và năng lượng tiêu thụ thấp nhất
• Trong nhiều năm vừa qua, tốc ộ phát triển máy tính nhúng là nhanh hơn nhiều so với máy tính ể bàn và máy chủ
➔ Nội dung môn học này và sách tham khảo chính chủ yếu trình bày về máy tính a dụng (generalpurpose
computer), tuy nhiên a số các khái niệm ều có thể áp dụng trực tiếp (hoặc với một số hiệu chỉnh nhỏ) cho các máy tính nhúng
2. BÊN DƯỚI CHƯƠNG TRÌNH ỨNG DỤNG lOMoAR cPSD| 58137911
Phần mềm hệ thống (System Software): Phần mềm nằm giữa tầng ứng dụng và phần cứng, làm cầu nối
(có nhiệm vụ giao tiếp trực tiếp phần cứng nhằm hỗ trợ cho các ứng dụng)
Có nhiều phần mềm hệ thống, nhưng 2 loại iển hình nhất cho hầu hết mọi hệ thống máy tính ngày nay là: • Hệ iều hành • Trình biên dịch
+Hệ iều hành (Operating System): Điều hành chương trình, dùng ể quản lý các nguồn tài nguyên của
máy tính nhằm hỗ trợ các chương trình chạy trên máy tính ó.
• Hệ iều hành óng vai trò giao tiếp giữa chương trình của người dùng và phần cứng, ồng thời cung
cấp nhiều dịch vụ khác nhau và các chức năng quản lý. Một số chức năng quan trọng như: o Điều
khiển các hoạt ộng nhập xuất cơ bản o Cấp phát bộ nhớ và vùng lưu trữ o Quản lý chia sẻ tài
nguyên máy tính khi có nhiều ứng dụng cùng chạy ồng thời
• Một số hệ iều hành ược sử dụng hiện nay: Windows, Linux, MacOS
+Trình biên dịch (Compiler): Chương trình dịch các câu lệnh ở ngôn ngữ cấp cao sang hợp ngữ (ngôn ngữ assembly)
• Trình biên dịch thực hiện một chức năng quan trọng khác: dịch chương trình ược viết bằng ngôn
ngữ cấp cao (C, Java) thành tập các lệnh mà phần cứng máy tính có thể thực thi. Với sự phức tạp
của các ngôn ngữ lập trình hiện ại và tính ơn giản của các lệnh thực thi bởi phần cứng, việc biên
dịch từ chương trình ngôn ngữ cấp cao thành các lệnh phần cứng là khá phức tạp
*Từ ngôn ngữ cấp cao ến ngôn ngữ phần cứng
- Bảng chữ cái cho máy tính: 0 và 1
• Để giao tiếp với một máy iện tử, ta cần gởi i các tín hiệu iện. Các tín hiệu dễ dàng nhất cho máy
hiểu là tín hiệu on (0) và off (1) (mở và tắt)
• Bảng chữ cái tiếng Anh có 26 kí tự
• Bảng chữ cái cho máy tính có 2 kí tự ➔ số nhị phân (binary number); mỗi kí tự là một kí số nhị
phân (binary digit) hay còn gọi là bit
- Ngôn ngữ máy tính
+ Lệnh (Instruction): Một yêu cầu ược ưa ra mà phần cứng máy tính có thể hiểu và áp ứng
+ Cách thức nhà lập trình giao tiếp với máy tính
• Những nhà lập trình ầu tiên giao tiếp với máy tính thông qua các số nhị phân, một công việc khá
buồn tẻ, và họ nhanh chóng tìm ra những cách viết mới gần gũi hơn với cách thức suy nghĩ của con người
• Ngôn ngữ Assembly (Hợp ngữ): Ngôn ngữ mô tả lệnh của máy tính thông qua kí hiệu biểu diễn (symbol)
• Assembler: Chương trình dịch lệnh hợp ngữ sang lệnh nhị phân lOMoAR cPSD| 58137911
• Ngôn ngữ lập trình cấp cao: Các ngôn ngữ có tính linh ộng (portable) như C, Fortran, Java; bao
gồm các từ và kí hiệu số học, có thể ược dịch sang ngôn ngữ Assembly bởi một trình biên dịch
• Chú ý: Việc dịch từ ngôn ngữ cấp cao sang ngôn ngữ máy nhị phân gồm 2 bước, tuy nhiên một số
trình biên dịch cắt giảm bước trung gian và dịch trực tiếp sang ngôn ngữ nhị phân
3 . BÊN TRONG MÁY TÍNH
Ph ầ n c ứ ng c ủ a m ộ t máy tính b ấ t
k ỳ th ự c hi ệ n nh ữ ng ch ức năng cơ bả n sau:
(Data path và Control thường ược kết hợp lại với tên gọi bộ xử lý (Processor))
+Bộ xử lý (Processor): Nhận lệnh và dữ liệu từ bộ nhớ ể xử lý
+Ngõ nhập (input) ghi dữ liệu vào bộ nhớ, và ngõ xuất (output) ọc dữ liệu ra từ bộ nhớ
+Khối iều khiển (Control): Gởi các tín hiệu iều khiển hoạt ộng của ường dữ liệu, bộ nhớ, ngõ nhập và ngõ xuất lOMoAR cPSD| 58137911
Tóm lại, các thành phần ngoại vi (peripherals hoặc I/O) thường gặp của máy tính gồm:
• Thiết bị nhập (Input device): chuột (mouse), bàn phím (keyboard)
• Thiết bị xuất (Output device): màn hình (screen)
• Một số thiết bị vừa xuất vừa nhập: ổ ĩa (disk), card mạng
*BÊN TRONG THÙNG MÁY
- Board mạch chủ (Mother-board/ Main board): Là một bảng mạch bằng plastic, chứa các khối mạch
tích hợp (Integrated circuits hay chips), gồm có bộ xử lý, cache, bộ nhớ và kết nối cho các thiết bị I/O
• Mạch tích hợp (Integrated circuits): Còn ược gọi là chip, chứa ựng hàng chục ến hàng triệu transistors
- Bộ nhớ (Memory): Là vùng lưu trữ chứa ựng chương trình ang chạy và chứa dữ liệu mà chương trình chạy cần dùng
• RAM (Random access memory): Khác với các bộ nhớ truy cập tuần tự, như ĩa từ (magnetic tapes
– sequential access memory), thời gian truy cập vào bất kì vị trí nào trong bộ nhớ RAM cơ bản là
như nhau o DRAM (Dynamic random access memory), SRAM (Static random access memory), flash
• DIMM (Dual inline memory module): Một board nhỏ chứa chip DRAM trên cả hai mặt của board.
SIMM (Single inline memory module) có DRAM chỉ trên một mặt
- Đơn vị xử lý trung tâm (Central processor unit - CPU): cũng gọi là bộ xử lý (processor), bộ phận
hoạt ộng tích cực của máy tính, chứa ường dữ liệu (data path) và khối iều khiển (control), thực hiện việc
như cộng số, kiểm tra số, kích hoạt các thiết bị I/O…
- Data path: Thành phần của bộ xử lý, thực hiện các tính toán toán học lOMoAR cPSD| 58137911
- Control: Thành phần của bộ xử lý, iều khiển ường dữ liệu, bộ nhớ và các thiết bị I/O tùy theo lệnh nào
ang thực thi của chương trình
➔Khối Datapath thực hiện các tính toán toán học, và khối Control sẽ hướng dẫn ường dữ liệu, bộ
nhớ và các thiết bị I/O những việc cần làm dựa trên yêu cầu của từng lệnh trong chương trình
➔Datapath và Control, lần lượt giống như cơ bắp và bộ não của bộ xử lý
*CHI TIẾT MỘT VI XỬ LÝ Cache:
• Bên trong bộ xử lý còn có một dạng bộ nhớ, gọi là bộ nhớ ệm (Cache memory)
• Bộ nhớ Cache là một bộ nhớ nhỏ, nhanh, hoạt ộng như một bộ ệm cho bộ nhớ DRAM
• Cache ược xây dựng trên một công nghệ thiết kế bộ nhớ khác biệt, dựa trên static random access
memory (SRAM). SRAM có tốc ộ truy cập nhanh hơn và ít dày ặc hơn, do ó mắc hơn DRAM
*NƠI LƯU DỮ LIỆU AN TOÀN
- Bộ nhớ khả biến/ bay hơi (Volatile memory): Chỉ lưu dữ liệu khi có nguồn iện (VD: DRAM)
- Bộ nhớ bất biến/ không bay hơi (Nonvolatile memory): Có thể lưu dữ liệu ngay cả khi không ược cấp
nguồn iện, dùng ể lưu trữ chương trình giữa các lần chạy. Đĩa từ (Magnetic disk) là một dạng bộ nhớ bất biến
• Bộ nhớ chính (Main/ Primary memory): Là bộ nhớ khả biến, dùng ể lưu chương trình ang chạy,
iển hình là DRAM trong các máy tính ngày nay
• Bộ nhớ thứ cấp (Secondary memory): Là bộ nhớ bất biến, dùng ể lưu chương trình và dữ liệu
giữa các lần chạy, iển hình là ĩa từ trong các máy tính ngày nay o Đĩa từ (Magnetic disk, cũng gọi
là hard disk): Bộ nhớ thứ cấp bất biến, bao gồm các ĩa quay ược phủ bởi vật liệu ghi bằng từ
▪ Gigabyte: theo truyền thống, tương ương 1.073.741.824 (230) bytes, tuy nhiên một
số hệ thống lưu trữ và giao tiếp hiện nay ịnh nghĩa bằng 1.000.000.000 (109) bytes.
Tùy thuộc ngữ cảnh, Gigabyte hoặc là 109 hoặc là 230 bytes
▪ Đa số ổ ĩa cứng (hard drive) nằm bên trong máy tính, ngoài ra cũng có các dạng
ược kết nối vào máy tính sử dụng những kết nối ngoài như thông qua cổng USB (universal serial bus)
o Đĩa quang Optical disks: CDs (Compact disks) và DVDs (Digital video disks) - Bộ nhớ Flash:
• Bộ nhớ bán dẫn dạng nonvolatile, dùng ể thay thế cho bộ nhớ ĩa (disk) trong các thiết bị di ộng
như iện thoại, máy chơi nhạc, và hướng ến cho laptop
• Rẻ hơn và chậm hơn DRAM nhưng mắc và nhanh hơn ĩa từ lOMoAR cPSD| 58137911
*GIAO TIẾP VỚI CÁC MÁY TÍNH KHÁC
- Mạng máy tính: Kết nối tất cả máy tính, cho phép người dùng máy tính mở rộng năng lực tính toán
thông qua giao tiếp giữa các máy tính. Mạng máy tính ngày càng trở nên phổ biến và là xương sống cho
các hệ thống máy tính hiện nay
- Máy tính ược kết nội mạng có nhiều thuận lợi:
• Giao tiếp: Thông tin ược giao ổi giữa các máy tính với tốc ộ cao
• Chia sẻ tài nguyên: Khác với máy tính riêng lẻ xài riêng các thiết bị I/O, máy tính bên trong một
mạng kết nối có thể chia sẻ các thiết bị này cho nhau
• Truy cập từ xa: Bằng cách kết nối máy tính từ xa, người dùng không cần ở gần máy tính mà họ ang sử dụng
- Mạng máy tính khác nhau về ộ dài và hiệu năng, theo ó chi phí sẽ tăng tương ứng với tốc ộ truyền tải và
khoảng cách mà thông tin có thể ược truyền tới
• Ethernet (hình thức mạng phổ biến nhất): Có thể dài 1km và tốc ộ truyền dữ liệu có thể lên tới 10 gigabits trên giây
hữu ích khi kết nối các máy tính trong cùng một tầng của tòa nhà, là một VD của dạng
mạng cục bộ (local area network)
• Local area network (LAN): mạng ược thiết kế ể truyền dữ liệu trong một vùng ịa lý giới hạn, iển
hình là mạng trong một tòa nhà
• Wide area networks (mạng xuyên lục ịa, là xương sống của mạng Internet, hỗ trợ World Wide
Web): Có thể dài tới hàng trăm km và tốc ộ truyền lên tới hàng gigabits trên giây ➔ thường ược
xây dựng trên công nghệ sợi quang (optical fibers) và ược cung cấp bởi các công ty viễn thông
• Wireless technology (mạng không dây, ược phát triển rộng rãi, a số laptop sử dụng công nghệ
mạng này): Mạng không dây phổ biến hiện nay theo chuẩn IEEE 802.11, cho phép tốc ộ truyền dữ
liệu trong khoảng 1 – 100 triệu bit trên giây
*CÔNG NGHỆ XÂY DỰNG BỘ XỬ LÝ VÀ BỘ NHỚ
- Transistor: Công tắc óng/ mở ược iều khiển bằng iện
- Very large scale integrated circuit (VLSI): Mạch tích hợp chứa hàng trăm ngàn ến hàng triệu transistor
- Moore’s law: Số lượng transistor của mạch tích hợp sẽ tăng gấp ôi trong khoảng thời gian mỗi 18-24 tháng
(Gordon Moore, một trong những nhà sáng lập Intel vào những năm 1960s) lOMoAR cPSD| 58137911 *ẢNH MÀU
- Để biểu diễn ược ảnh màu trên màn hình máy tính, ảnh và màn hình ều ược chia thành các hàng và cột,
tạo thành một ma trận các ô. Mỗi ô như vậy gọi là 1 pixel
Pixel: Phần tử ảnh nhỏ nhất. Màn hình bao gồm hàng trăm, hoặc ngàn hoặc triệu pixel ược tổ chức thành một ma trận
- Tùy vào kích cỡ màn hình và ộ phân giải (resolution), ma trận hiển thị có thể có ộ lớn từ 640x480 ến
2560x1600 pixel (trong năm 2008)
- Mỗi pixel mang một màu và sẽ dùng một số bit nào ó ể thể hiện màu này. Vì vậy, một hình ảnh trong
máy tính sẽ ược thể hiện như một ma trận các bit, gọi là “bit map”
- Khi hình ảnh ược thể hiện ra màn hình, trong máy tính sẽ có một phần cứng tên “raster refresh buffer”,
hay còn gọi là “frame buffer”, ể lưu nội dung bitmap trước khi nó ược thể hiện ra màn hình
- Một màu tương ứng trong hâu hết các máy tính hiện tại là tổ hơp từ ba màu cơ bản: ỏ (red), xanh lá
(green) và xanh dương (blue). Dùng bao nhiêu bit ể hiển thị cho mỗi màu cơ bản này tùy vào từng hệ thống TỔNG KẾT
- Ba loại máy tính chính: Desktop compters, Servers và Embedded computers
- Phần mềm và phần cứng trong máy tính phân làm 3 cấp: Ứng dụng (Application), Phần mềm hệ thống
(System software) và Phần cứng (Hardware) lOMoAR cPSD| 58137911
- Ngôn ngữ trong máy tính cũng phân chia từ: Ngôn ngữ cấp cao, hợp ngữ, ến ngôn ngữ máy
- Về phần cứng, ã giới thiệu một máy tính có các phần cứng cơ bản nào và các kỹ thuật chế tạo liên quan
HIỆU SUẤT MÁY TÍNH
- Thời gian áp ứng (Response time): Cũng gọi là thời gian thực thi (execution time), là tổng thời gian ể
máy tính hoàn thành một tác vụ nào ó, bao gồm thao tác truy cập ổ ĩa, truy cập bộ nhớ, hoạt ộng I/O,
thời gian thực thi của hệ iều hành (operating system overhead), …
- Thông năng/ Hiệu suất (Throughput/Performance): Cũng gọi là bandwidth, là số lượng tác vụ hoàn
thành trong một ơn vị thời gian
- Hầu hết tất cả các máy tính ều cần một “ ồng hồ” ể xác ịnh khi nào một sự kiện / thao tác ược thực hiện
trong phần cứng. Khối tạo ra các khoảng thời gian ịnh thời cho máy tính làm việc này ược gọi là khối
tạo xung ồng hồ hay khối tạo xung clock
- Hai khái niệm liên quan ến xung ồng hồ:
+ Chu kỳ xung ồng hồ/xung clock (Clock cycle time/ clock cycle/ cycle time) +
Tần số xung ồng hồ/xung clock (Clock rate) lOMoAR cPSD| 58137911
- Chu k ỳ xung ồ ng h ồ và t ầ n s ố xung ồ ng h ồ :
+ Chu k ỳ xung clock = 0.5 x 10 -9 giây
+Tần số xung clock = 𝟏 = 𝟏
= 2 x 109 (Hz) = 2 (GHz)
𝒄𝒍𝒐𝒄𝒌 𝒄𝒚𝒍𝒄𝒆
𝟎.𝟓∗𝟏𝟎^(−𝟗)
Clock rate và Clock cycle time là nghịch ảo của nhau
* Tính hiệu suất dựa trên chu kỳ và tần số xung ồng hồ +
Dựa trên chu kỳ xung ồng hồ:
+ D ự a trên t ầ n s ố xung ồ ng h ồ :
- CPI (clock cycle per instruction): Số chu kỳ xung clock cần ể thực thi một lệnh lOMoAR cPSD| 58137911
- MIPS (Million instruction per second): Một cách o tốc ộ thực thi của chương trình dựa trên số lượng
triệu lệnh trên giây. MIPS ược tính bằng số lượng lệnh chia cho tích của thời gian thực thi và giá trị 106.
- IPS (Instruction per second): Số lệnh trên giây. Nếu ề bài chỉ yêu cầu tính IPS thì không cần chia cho 106. TÓM LẠI
- Những yếu tố cơ bản ể quyết ịnh hiệu suất máy tính gồm: Yếu tố Đơn vị o
Thời gian CPU thực thi một chương trình Giây (seconds) (CPU execution time)
Số lượng lệnh ược thực thi cho một chương
Số lượng lệnh (Instruction count) trình lOMoAR cPSD| 58137911
CPI (Clock cycles per instruction)
Số lượng chu kỳ clock ể thực thi một lệnh
Thời gian một chu kỳ clock (Clock cycle time) Giây
- Hiệu suất của chương trình phụ thuộc vào thuật toán, ngôn ngữ, trình biên dịch, kiến trúc và phần cứng
máy tính. Bảng bên dưới tóm tắt sự ảnh hưởng của những yếu tố này lên hiệu suất của CPU Yếu tố phần Tác ộng vào gì Như thế nào? cứng/phần mềm
Thuật toán sẽ quyết ịnh có bao nhiêu lệnh trong
chương trình nguồn và theo ó là số lượng lệnh mà
CPU phải thực thi. Thuật toán có thể ảnh hưởng ến Số lượng lệnh, và Thuật toán
CPI về khía cạnh lệnh chạy nhanh hay chậm, ví dụ, có thể cả CPI
nếu thuật toán có nhiều phép tính trên số thực dấu
chấm ộng (floating-point), kahr năng sẽ có CPI cao hơn
Ngôn ngữ lập trình chắc chắn ảnh hưởng ến số lượng
lệnh, vì các chương trình viết bằng ngôn ngữ lập
trình sẽ ược chuyển thành lệnh cho bộ xử lý. Ngoài Ngôn ngữ lập
Số lượng lệnh, CPI ra, CPI cũng có thể bị ảnh hưởng, ví dụ, một ngôn trình
ngữ có tính năng hỗ trợ mạnh về trừu tượng hóa dữ
liệu (như Java) sẽ có nhiều lời gọi lệnh không trực
tiếp, do ó sẽ sử dụng nhiều lệnh có CPI cao
Vì trình biên dịch thực hiện việc chuyển các lệnh từ
NN cấp cao sang NN máy nên chắc chắn tác ộng ến Trình biên dịch
Số lượng lệnh, CPI số lượng lệnh và CPI. Vai trò của trình biên dịch rất
phức tạp và ảnh hưởng ến CPI theo một cách phức tạp
Kiến trúc tập lệnh tác ộng ến cả 3 yếu tố của hiệu
Số lượng lệnh, tần năng CPU, vì nó quyết ịnh các lệnh cần ể thực hiện
Kiến trúc tập lệnh số xung clock, CPI một chức năng, số lượng chu kỳ cho một lệnh và tần
số clock tổng quan của bộ xử lý lOMoAR cPSD| 58137911
KIẾN TRÚC BỘ LỆNH 1. GIỚI THIỆU
Để ra lệnh cho máy tính ta phải nói với máy tính bằng ngôn ngữ của máy tính. Các từ của ngôn ngữ máy
tính gọi là các lệnh (instructions) và tập hợp tất cả các từ gọi là bộ lệnh (instruction set)
Bộ lệnh trong chương này là MIPS, một bộ lệnh kiến trúc máy tính ược thiết kế từ năm 1980. Cùng với 2
bộ lệnh thông dụng nhất ngày nay: • ARM (rất giống MIPS) • The Intel x86 2. CÁC PHÉP TÍNH lOMoAR cPSD| 58137911 3. TOÁN HẠNG Có 3 loại toán hạng:
a. Toán hạng thanh ghi
• Không giống như các chương trình trong NN cấp cao, các toán hạng của các lệnh số học bị hạn
chế, chúng phải ặt trong các vị trí ặc biệt ược xây dựng trực tiếp trong phần cứng ược gọi là thanh
ghi (số lượng thanh ghi có giới hạn: MIPS-32, ARM Cortex A8-40)
• Kích thước của 1 thanh ghi trong kiến trúc MIPS là 32 bit; nhóm 32 bit xuất hiện thường xuyên
nên chúng ược ặt tên là “từ” (word) trong kiến trúc MIPS o (Lưu ý: một “từ” trong kiến trúc bộ
lệnh khác có thể không là 32 bit)
• Một sự khác biệt lớn giữa các biến của 1 NN lập trình và các biến thanh ghi là số thanh ghi bị giới
hạn (thường là 32 thanh ghi trên các máy tính hiện nay) lOMoAR cPSD| 58137911
b. Toán hạng bộ nhớ -
Vi xử lý chỉ có thể giữ một lượng nhỏ dữ liệu trong các thanh ghi, trong khi bộ nhớ máy tính chứa hàng triệu dữ liệu. -
Với lệnh MIPS, phép tính số học chỉ xảy ra trên thanh ghi, do ó, MIPS phải có các lệnh chuyển dữ
liệu giữa bộ nhớ và thanh ghi. Lệnh như vậy ược gọi là lệnh chuyển dữ liệu
• Lệnh chuyển dữ liệu: Một lệnh di chuyển dữ liệu giữa bộ nhớ và thanh ghi - Để truy cập
vào 1 từ trong bộ nhớ, lệnh phải cung cấp ịa chỉ bộ nhớ
• Địa chỉ: Một giá trị sử dụng ể phân ịnh vị trí của một phần tử dữ liệu cụ thể trong một mảng bộ nhớ -
Bộ nhớ chỉ là 1 mảng ơn chiều lớn, với ịa chỉ óng vai trò là chỉ số trong mảng ó, bắt ầu từ 0. Ví dụ,
trong hình 1, ịa chỉ của phần tử thứ ba là 2 và giá trị của bộ nhớ [2] là 10 lOMoAR cPSD| 58137911 -
Mỗi từ nhớ (word) của MIPS là 4 bytes. MIPS ịnh ịa chỉ theo byte, ịa chỉ của mỗi word là ịa chỉ
của byte ầu tiên trong word ó. Do ó, ịa chỉ mỗi word trong MIPS phải là bội của 4 -
Lệnh chuyển dữ liệu từ bộ nhớ vào thanh ghi gọi là nạp (load) (viết tắt lw – load word). Định
dạng của các lệnh nạp: -
Lệnh chuyển dữ liệu từ thanh ghi ra bộ nhớ, gọi là lệnh lưu (store) (viết tắt sw – store word). Định
dạng của các lệnh lưu: -
Alignment Restriction: Trong MIPS, các từ phải bắt ầu từ ịa chỉ là bội số của 4. Yêu cầu này ược
gọi là một “alignment restriction” và nhiều kiến trúc hiện nay buộc tuân theo quy ịnh này nhằm giúp việc
truyền dữ liệu nhanh hơn. Tuy nhiên một số kiến trúc vẫn không bắt buộc quy ịnh này -
Leftmost – “Big End”, “Big Endian”
- Rightmost – “Little End”, “Little Endian” ➔ MIPS thuộc dạng nào? lOMoAR cPSD| 58137911 c. Toán hạng hằng
Một hằng số/ số tức thời (constant/immediate number) có thể ược sử dụng trong một phép toán
Tóm lại, chỉ có 3 loại toán hạng trong một lệnh của MIPS
• Toán hạng thanh ghi (Register Operands)
• Toán hạng bộ nhớ (Memory Operands)
• Toán hạng hằng (Constant or Immediate Operands) Lưu ý:
• Các hằng số trong MIPS có thể âm nên không cần phép trừ một thanh ghi và một số tức thời trong MIPS
• Trong thực tế, có một phiên bản khác của MIPS làm việc với các thanh ghi 64 bits, gọi là MIPS64.
MIPS xem xét trong môn học này là MIPS làm việc với các thanh ghi chỉ 32 bit, gọi là MIPS32.
• Trong phạm vi môn học này, MIPS dùng chung sẽ hiểu là MIPS-32
4. SỐ CÓ DẤU VÀ KHÔNG DẤU
- Con người ược dạy ể suy nghĩa trong hệ cơ số 10, nhưng con số có thể ược biểu diễn trong bất kỳ cơ số nào. VD, 12310 = 11110112
- Số lưu trữ trong máy tính như một chuỗi các tín hiệu iện thế cao và thấp, do ó chúng ược xem như hệ cơ số 2
- Một word của MIPS có 32 bit, do ó có thể biểu diễn các số từ 0 ến 232–1 (4.294.967.295)
• Bit trọng số nhỏ nhất (The least significant bit - LSB): Bit ngoài cùng bên phải trong một từ nhớ (bit 0)
• Bit trọng số lớn nhất (The most significant bit - MSB): Bit ngoài cùng bên trái trong một từ nhớ (bit 31)
*Số dương và âm trong máy tính:
- Các máy tính hiện tại sử dụng bù hai ể biểu diễn nhị phân cho số có dấu
• Nếu MSB = 0: số dương lOMoAR cPSD| 58137911 • Nếu MSB = 1: số âm
➔Bit thứ 32 (MSB) còn ược gọi là bit dấu
- Nửa phần dương của các con số, từ 0 ến 2,147,483,647ten (231 - 1), biểu diễn như thường - Phần số âm biểu diễn:
- Bù hai có một số âm -2,147,483,648ten , mà không có số dương tương ứng Công thức chuyển từ một số
bù hai sang số hệ 10:
Lưu ý: Bit dấu ược nhân với -231, và phần còn lại của các bit sau ó ược nhân với các số dương của các giá
trị cơ số nào tương ứng của chúng
* Mở rộng số có dấu:
Làm thế nào ể chuyển ổi một số nhị phân ược biểu diễn trong n bit thanh một số biểu diễn với nhiều hơn n bit?
- Khi làm việc với các lệnh của MIPS, lưu ý:
• Mở rộng có dấu (Sign-extend)
• Mở rộng không dấu (Zero-extend) lOMoAR cPSD| 58137911 TỔNG KẾT
Giới thiệu lệnh máy tính, tập lệnh là gì. (Tập lệnh ược sử dụng cụ thể trong môn học này là MIPS 32 bits)
Tập lệnh bao gồm các nhóm lệnh cơ bản: • Nhóm lệnh logic • Nhóm lệnh số học
• Nhóm lệnh trao ổi dữ liệu • Nhóm lệnh nhảy
Với MIPS, toán hạng cho các lệnh ược chia thành 3 nhóm:
• Nhóm toán hạng thanh ghi
• Nhóm toán hạng bộ nhớ
• Nhóm toán hạng là số tức thời
Nhắc lại số có dấu và số không dấu
5. BIỂU DIỄN LỆNH
Làm thế nào một lệnh (add $t0, $s1, $s2) lưu giữ ược trong máy tính?
Máy tính chỉ có thể làm việc với các tín hiệu iện tử thấp và cao, do ó một lệnh lưu giữ trong máy tính phải
ược biểu diễn như là một chuỗi của “0” và “1”, ược gọi là mã máy/lệnh máy
Ngôn ngữ máy (Machine language): biểu diễn nhị phân ược sử dụng ể giao tiếp trong một hệ thống máy tính
Để chuyển ổi từ một lệnh sang mã máy (machine code) sử dụng ịnh dang lệnh (instruction format)
• Định dạng lệnh: Một hình thức biểu diễn của 1 lệnh bao gồm các trường của số nhị phân
Mỗi phân oạn của 1 ịnh dạng lệnh ược gọi là một trường (VD trường op, rs, rt, rd, shamt, funct) lOMoAR cPSD| 58137911
Trong ngôn ngữ Assembly MIPS:
• Thanh ghi $s0 ến $s7 có chỉ số tương ứng từ 16 ến 23
• Thanh ghi $t0 ến $t7 có chỉ số tương ứng từ 8 ến 15
Các trường rs, rt, rd chứa chỉ số của các thanh ghi tương ứng; trường op và funct có giá trị bao nhiêu cho
từng loại lệnh do MIPS quy ịnh Trường ‘shamt’
*Từ một mã máy ang có, như thế nào máy tính hiểu?
• Trường ầu tiên (op, tức opcode có giá trị 0) và trường cuối cùng (funct, tức function có giá trị
20hex) kết hợp báo cho máy tính biết rằng ây là lệnh cộng (add)
• Trường thứ hai (rs) cho biết toán hạng thứ nhất của phép toán cộng (rs hiện có giá trị 17, tức toán
hạng thứ nhất của phép cộng là thanh ghi $s1)
• Trường thứ ba (rt) cho biết toán hạng thứ hai của phép cộng (rt hiện có giá trị 18, tức toán hạng
thứ hai của phép cộng là thanh ghi $s2)
• Trường thứ tư (rd) là thanh ghi ích chứa tổng của phép cộng (rd hiện có giá trị 8, tức thanh ghi ích chứa tổng là $t0)
• Trường thứ năm (shamt) không sử dụng trong lệnh add này
*Các dạng khác nhau của ịnh dạng lệnh MIPS:
op (hay còn gọi là opcode, mã tác vụ): Trong cả 3 ịnh dạng của lệnh, trường op luôn chiếm 6 bits