January 21, 2024 Bài giảng kiến trúc máy tính • Máy tính nhúng Embedded Computer Được đặt trong thiết bị khác để điều khiển thiết bị đó làm việc ? Được thiết kế chuyên dụng Ví dụ: ? Điệ
Trang 1January 21, 2024 Bài giảng kiến trúc máy tính
Trang 2January 21, 2024 Bài giảng kiến trúc máy tính
• Chương 4 Giới thiệu một số KT hiện đại
• Chương 5 Tổ chức vào ra của máy tính
•
Trang 3January 21, 2024 Bài giảng kiến trúc máy tính
Tài liệu tham khảo
1 William Stallings - Computer Organization and Architecture –
Designing for Performance – 2003 (6th edition)
2 Behrooz Parhami - Computer Architecture: From Microprocessors to Supercomputers - 2005
3 David A Patterson & John L Hennessy -Computer Organization
and Design: The Hardware/Software Interface – 2002 (third edition)
4 John L Hennessy & David A Patterson -Computer Architecture:
A Quantitative Approach –2003 (third edition)
Trang 4January 21, 2024 Bài giảng kiến trúc máy tính
Chương I Tổng quan
• I Giới thiệu chung
• II Kiến trúc máy tính tuần tự Vonneuman
• III Các phương pháp vào ra dữ liệu của máy tính
Trang 5January 21, 2024 Bài giảng kiến trúc máy tính
I Giới thiệu chung
• 1.1 Máy tính và phân loại máy tính
1 Máy tính
Máy tính (Computer) là thiết bị điện tử thực hiện
các công việc sau:
• Nhận thông tin vào
• Xử lý thông tin theo dãy các lệnh được nhớ sẵn
bên trong,
• Đưa thông tin ra.
• Dãy các lệnh nằm trong bộ nhớ để yêu cầu máy
tính thực hiện công việc cụ thể gọi là chương
trình (program)
• Máy tính hoạt động theo chương trình.
Trang 6January 21, 2024 Bài giảng kiến trúc máy tính
I Giới thiệu chung
2 Phân loại máy tính
Phân loại truyền thống
• Máy vi tính (Microcomputers)
• Máy tính nhỏ (Minicomputers)
• Máy tính lớn (Mainframe Computers)
• Siêu máy tính (Supercomputers)
Phân loại máy tính hiện đại
• Máy tính cá nhân (Personal Computers)
• Máy chủ (Server Computers)
Trang 7January 21, 2024 Bài giảng kiến trúc máy tính
• Máy tính cá nhân PC
Là loại máy tính phổ biến nhất
Các loại máy tính cá nhân:
Máy tính để bàn (Desktop)
Máy tính xách tay (Laptop)
1981 IBM giới thiệu máy tính IBM-PC sử
Trang 8January 21, 2024 Bài giảng kiến trúc máy tính
Trang 9January 21, 2024 Bài giảng kiến trúc máy tính
• Máy tính nhúng (Embedded Computer)
Được đặt trong thiết bị khác để điều khiển thiết bị đó làm việc
Được thiết kế chuyên dụng
Ví dụ:
Điện thoại di động
Máy ảnh số
Bộ điều khiển trong máy giặt, điều hoà nhiệt độ
Router – bộ định tuyến trên mạng
Giá thành: vài USD đến hàng trăm nghìn USD.
Trang 10January 21, 2024 Bài giảng kiến trúc máy tính
1.2 Kiến trúc máy tính
Định nghĩa trước đây về kiến trúc máy tính:
Cách nhìn logic của máy tính từ người lập trình (hardware/software interface)
Kiến trúc tập lệnh (Instruction Set Architecture– ISA)
Trang 11January 21, 2024 Bài giảng kiến trúc máy tính
• Tổ chức máy tính (Computer Organization): nghiên cứu thiết kế máy tính ở mức cao,chẳng hạn như hệ thống nhớ, cấu trúc bus, thiết kế bên trong CPU.
• Phần cứng (Hardware): nghiên cứu thiết kế logic chi
tiết và công nghệ đóng gói của máy tính.
Kiến trúc tập lệnh thay đổi chậm, tổ chức và phần cứng máy tính thay đổi rất nhanh.
Trang 12January 21, 2024 Bài giảng kiến trúc máy tính
Trang 13January 21, 2024 Bài giảng kiến trúc máy tính
• Mô hình phân lớp của máy tính
• Phần cứng (Hardware): hệ thống vật lý của máy tính.
• Phần mềm (Software): các chương trình và dữ liệu.
Trang 14January 21, 2024 Bài giảng kiến trúc máy tính
• Thế hệ thứ hai: Máy tính dùng transistor (1960s)
• Thế hệ thứ ba: Máy tính dùng vi mạch SSI, MSI và LSI (1970s)
• Thế hệ thứ tư: Máy tính dùng vi mạch VLSI (1980s)
• Thế hệ thứ năm: Máy tính dùng vi mạch ULSI, SoC
(1990s)
Trang 15January 21, 2024 Bài giảng kiến trúc máy tính
Trang 16January 21, 2024 Bài giảng kiến trúc máy tính
• Máy tính von Neumann
• Đó là máy tính IAS:
• Princeton Institute for Advanced Studies
• Được bắt đầu từ 1947, hoàn thành1952
• Do John von Neumann thiết kế
• Được xây dựng theo ý tưởng “chương
trình được lưu trữ” (stored-program
• concept) của von Neumann/Turing (1945)
Trang 17January 21, 2024 Bài giảng kiến trúc máy tính
• Đặc điểm chính của máy tính IAS
• Bao gồm các thành phần: đơn vị điều khiển, đơn vị số học và logic (ALU), bộ nhớ chính và các thiết bị vào-ra.
• Bộ nhớ chính chứa chương trình và dữ liệu
• Bộ nhớ chính được đánh địa chỉ theo từng ngăn
nhớ, không phụ thuộc vào nội dung của nó.
• ALU thực hiện các phép toán với số nhị phân
• Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã và thực hiện lệnh một cách tuần tự.
• Đơn vị điều khiển điều khiển hoạt động của các
thiết bị vào-ra
Trở thành mô hình cơ bản của máy tính
Trang 18January 21, 2024 Bài giảng kiến trúc máy tính
• John von Neumann và máy tính IAS
Hãng IBM International Business Machine
Trang 19January 21, 2024 Bài giảng kiến trúc máy tính
• Máy tính dùng transistor
Máy tính PDP-1 của DEC (Digital
Equipment Corporation) máy tính mini đầu
Trang 20January 21, 2024 Bài giảng kiến trúc máy tính
• Máy tính dùng vi mạch SSI, MSI và LSI
Vi mạch (Integrated Circuit - IC): nhiều transistor
và các phần tử khác được tích hợp trên một
chip bán dẫn.
SSI (Small Scale Integration)
MSI (Medium Scale Integration)
LSI (Large Scale Integration)
VLSI (Very Large Scale Integration) (thế hệ thứ tư)
ULSI (Ultra Large Scale Integration) (thế hệ thứ năm)
SoC (System on Chip)
Siêu máy tính xuất hiện: CRAY-1, VAX
Bộ vi xử lý (microprocessor) ra đời
Bộ vi xử lý đầu tiên Intel 4004 (1971).
Trang 21January 21, 2024 Bài giảng kiến trúc máy tính
Máy tính dùng vi mạch VLSI/ULSI
• Các sản phẩm chính của công nghệ VLSI/ULSI:
Bộ vi xử lý (Microprocessor): CPU được chế
tạo trên một chip.
Vi mạch điều khiển tổng hợp (Chipset): một
hoặc một vài vi mạch thực hiện được nhiều
chức năng điều khiển và nối ghép.
Bộ nhớ bán dẫn (Semiconductor Memory):
ROM, RAM
Các bộ vi điều khiển (Microcontroller): máy
tính chuyên dụng được chế tạo trên 1 chip.
Trang 22January 21, 2024 Bài giảng kiến trúc máy tính
Các bộ xử lý đa lõi (multicores)
Các bộ vi điều khiển (microcontroller)
Pentium
Siêu vô hướng
Bus dữ liệu 64-bit
Đa lệnh được thực hiện song song Pentium Pro
Tăng cường tổ chức siêu vô hướng
Dự đoán rẽ nhánh
Phân tích luồng dữ liệu
Suy đoán đông
Trang 23January 21, 2024 Bài giảng kiến trúc máy tính
• Tăng cường xử lý số dấu phẩy động vàmultimedia
Duo Core: 2 bộ xử lý trên chip
Core 2: Kiến trúc 64-bit
• Core 2 Quad – 3GHz – 820 triệu transistors
4 bộ xử lý trong 1chip
Trang 24January 21, 2024 Bài giảng kiến trúc máy tính
• Intel Pentium (32-bit)
Multicores
Trang 25January 21, 2024 Bài giảng kiến trúc máy tính
I.1 Phân loại kiến trúc máy tính
• Kiến trúc SISD (single instruction - single data, đơn dòng lệnh - đơn dòng dữ liệu)
• - Kiến trúc SIMD (Single Instruction Multiple Data, đơn dòng lệnh- đa dữ liệu)
Khối điều khiển Khối chấp hành
Hệ thống nhớ
Các tín hiệu điều khiển
Khối điều khiển Khối chấp hành 2
Hệ thống nhớ lệnh
Các tín hiệu điều khiển
Trang 26January 21, 2024 Bài giảng kiến trúc máy tính
• Kiến trúc MIMD (Multiple Instruction Multiple
Data, đa dòng lệnh- đa dữ liệu)
dữ liệu Khối điều khiển 1 Khối điều khiển n
Hệ thống nhớ lệnh
dữ liệu lệnh
Trang 27January 21, 2024 Bài giảng kiến trúc máy tính
Trang 28January 21, 2024 Bài giảng kiến trúc máy tính
Trang 29January 21, 2024 Bài giảng kiến trúc máy tính
• Ví dụ:
• Giả sử: Thực hiện lệnh A có CPI = 2, B có CPI = 3, C có CPI = 1, D có CPI = 4
• Biết 1 CPI = 2ns (nano giây) làm hết lệnh trên cần 26s
• MIPs (Million Instruction Per Second): Số triệu lệnh được thực hiện trong một giây
*
* (
(mips) 30.845
1000
* ) 2 8 16 ( ) 5 1 20 ( ) 1 3 ( ) 15
* 6 ( ) 7 5 9 ( ) 10
* 3 ( ) 1 10 ( ) 5 1 4 30 (
Trang 30January 21, 2024 Bài giảng kiến trúc máy tính
n CK thực hiện Thời gian thực hiện chương trình T
Trang 31January 21, 2024 Bài giảng kiến trúc máy tính
I.3 Toán logic, đại số boolean
• Đại số Boole sử dụng các biến logic và phép toán logic
Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0 (FALSE)
Phép toán logic cơ bản là AND, OR và NOT
• với ký hiệu như sau:
Thứ tự ưu tiên: NOT > AND > OR
Các phép toán NAND, NOR, XOR:
Trang 32January 21, 2024 Bài giảng kiến trúc máy tính
Phép toán đại số Boole
Trang 33January 21, 2024 Bài giảng kiến trúc máy tính
Các đồng nhất thức của đại số
Boole
Trang 34January 21, 2024 Bài giảng kiến trúc máy tính
Một số đường vào (dẫn tín hiệu vào) và chỉ có một đường ra (phát tín hiệu ra)
Giả sử các tín hiệu vào x 1, x2, …, xn (ta gọi là đầu vào hay input) cũng như tín hiệu ra F (đầu
ra hay output) đều chỉ có hai trạng thái khác nhau, tức là mang một bit thông tin, mà ta ký hiệu
là 0 và 1
Một thiết bị với các đầu vào và đầu ra mang giá trị 0, 1 như vậy là một mạch lôgic
Đầu ra của một mạch lôgic là một hàm Boole F của các đầu vào x 1, x2, …, xn Ta nói mạch lôgic trong hình trên thực hiện hàm F
•Các mạch lôgic được tạo thành từ một số mạch cơ sở, gọi là cổng lôgic Các cổng lôgic sau đây thực hiện các hàm phủ định, hội và tuyển.
Trang 35January 21, 2024 Bài giảng kiến trúc máy tính
Trang 36January 21, 2024 Bài giảng kiến trúc máy tính
Trang 37January 21, 2024 Bài giảng kiến trúc máy tính
• 3.1.1 Cổng NOT Cổng NOT thực hiện hàm phủ định Cổng chỉ có một đầu vào Đầu ra F(x) là
phủ định của đầu vào x.
• Chẳng hạn, xâu bit 100101011 qua cổng NOT cho xâu bit 011010100
, 1 0
)
(
x khi
x khi x
) , (x y xy khi x y F
, 1 1
1 )
, (
y x khi
y hay x
khi y
x y x
y
Trang 38January 21, 2024 Bài giảng kiến trúc máy tính
Trang 39January 21, 2024 Bài giảng kiến trúc máy tính
y x
F( , , )
Trang 40January 21, 2024 Bài giảng kiến trúc máy tính
Bộ dồn kênh (Multiplexer-MUX)
Trang 41January 21, 2024 Bài giảng kiến trúc máy tính
Bộ dồn kênh (Multiplexer-MUX)
Trang 42January 21, 2024 Bài giảng kiến trúc máy tính
Trang 43January 21, 2024 Bài giảng kiến trúc máy tính
Trang 44January 21, 2024 Bài giảng kiến trúc máy tính
Bộ giải mã (Decoder)
Bộ giải mã chọn một đầu ra tương ứng với một tổ hợp của N đầu vào.
Trang 45January 21, 2024 Bài giảng kiến trúc máy tính
Trang 46January 21, 2024 Bài giảng kiến trúc máy tính
III Các phương pháp vào ra dữ liệu của máy tính
III.1 Phương pháp thăm dò trạng thái thiết bị ngoại vi
CPU sẽ liên tục gửi các tín hiệu hỏi xem có thiết bị nào sẵn sàng gửi DL cho mình hay không Nếu có một thiết bị ngoại vi nào đó muốn trao đổi DL với CPU thì nó sẽ gửi lại tín hiệu sẵn sàng trao đổi Khi đó CPU sẽ thực hiện việc trao đổi DL với thiết bị ngoại
vi này.
III.2 Phương pháp sử dụng ngắt
CPU vẫn làm công việc của mình, chỉ khi nào có một thiết bị ngoại vi hay một thành phần nào đó của má tính có yêu cầu trao đổi dữ liệu với CPU thì thiết bị ngoại vi này sẽ gửi một yêu cầu ngắt tới CPU, khi đó CPU sẽ tạm dừng công việc hiện tại để quay ra trao đổi dữ liệu với thiết bị ngoại vi này Trao đổi dữ liệu xong, CPU quay trở lại thực hiện tiếp công việc đang làm dở trước đó.
III.3 Phương pháp truy nhập bộ nhớ trực tiếp DMA
Thường được sử dụng khi có yêu cầu trao đổi dữ liệu lớn giữa CPU và thiết bị ngoại vi CPU trao quyền quản lý cho bộ điều khiển truy nhập trực tiếp, lúc này việc trao đổi
dữ liệu giữa thiết bị ngoại vi và bộ nhớ chính sẽ do bộ điều khiển này thực hiện.
III.4 Phương pháp sử dụng kênh dữ liệu
Xây dựng các đường bus dữ liệu riêng, nối trực tiếp thiết bị ngoại vi và bộ nhớ chính, mọi
hế thống bus lại có một bộ điều khiển riêng được gọi là kênh dữ liệu.
Trang 47January 21, 2024 Bài giảng kiến trúc máy tính
2.1 Mô hình lập trình của máy tính
2.2 Các đặc trưng của lệnh máy
Trang 48January 21, 2024 Bài giảng kiến trúc máy tính
instruction instruction
data data
Mainmemory
0 1 2
n-2 n-1
….
….
Excution unit
buffer
PC Program counter
IR Instruction register MAR Memory address register MBR Memory buffer register I/O Input/output address register I/O Input/output buffer register
Trang 49January 21, 2024 Bài giảng kiến trúc máy tính
Trang 50January 21, 2024 Bài giảng kiến trúc máy tính
Trang 51January 21, 2024 Bài giảng kiến trúc máy tính
Trang 52January 21, 2024 Bài giảng kiến trúc máy tính
Trang 53January 21, 2024 Bài giảng kiến trúc máy tính
Trang 54January 21, 2024 Bài giảng kiến trúc máy tính
Trang 55January 21, 2024 Bài giảng kiến trúc máy tính
Trang 56January 21, 2024 Bài giảng kiến trúc máy tính
Trang 57January 21, 2024 Bài giảng kiến trúc máy tính
Trang 58January 21, 2024 Bài giảng kiến trúc máy tính
Giới thiệu về tập lệnh
Mỗi bộ xử lý có một tập lệnh xác định
Tập lệnh thường có hàng chục đến hàng trăm lệnh Mỗi lệnh là một chuỗi số nhị phân mà bộ xử
lý hiểu được để thực hiện một thao tác xác định Các lệnh được mô tả bằng các ký hiệu gợi nhớ - chính là các lệnh của hợp ngữ
Trang 59January 21, 2024 Bài giảng kiến trúc máy tính
Dạng lệnh, kích thước mã lệnh
Một lệnh mô tả bằng mã nhị phân có thể dài từ 1 đến 6 byte
Cấu trúc chung của một mã lệnh tuân theo sơ đồ sau:
Prefix OPcode Operand Địa chỉ trực
tiếp
Prefix (Tiền tố) đi trước mã lệnh Phần này có thế có, có thể không
Ví dụ tiền tố 3Eh báo hiệu vô hiệu hóa đoạn DS.
Operation code (Mã toán) chỉ ra các thao tác mà CPU cần thực hiện, phân biệt đó là lệnh gì Đối với CPU mã lệnh là một chuỗi các bit 0, 1
Ví dụ với lệnh dịch chuyển MOV có mã toán là 100010.
Toán hạng (operand) dùng để xác định những đối tượng mà ở đó phép toán được thực hiện (nội dung của thanh ghi hay bộ nhớ) Các toán hạng thường được ngăn cách nhau bởi dấu phẩy Toán hạng có thể có hoặc không
Ví dụ lệnh công hay nhân hai số hạng với nhau yêu cầu phải có hai toán hạng, lệnh dịch chuyển cần
một toán hạng, lệnh xóa cờ không cần toán hạng nào.
Trang 60January 21, 2024 Bài giảng kiến trúc máy tính
Ví dụ: ADD, SUB, LOAD
Toán hạng có thể được mô tả như sau:
ADD A,B
Trang 61January 21, 2024 Bài giảng kiến trúc máy tính
II Số lượng các lệnh cho VXL
Khi thiết kế một hệ lệnh cho bộ VXL nảy sinh một số vấn đề sau:
Số lượng lệnh là bao nhiêu.
Số lượng tham số trong hệ lệnh là bao nhiêu.
Phân chia các lệnh theo dạng nào?
Để thực hiện việc mã hóa các lệnh người ta sử dụng một dãy số nhị
phân Độ dài của dãy số này sẽ qui định số lượng các lệnh mà bộ
xử lý có thể xử lý được.
Trang 62January 21, 2024 Bài giảng kiến trúc máy tính
Các kiểu lệnh
Trang 63January 21, 2024 Bài giảng kiến trúc máy tính
Trang 64January 21, 2024 Bài giảng kiến trúc máy tính
Số lượng địa chỉ toán hạng trong lệnh
Hai địa chỉ toán hạng:
Một toán hạng vừa là toán hạng nguồn vừa là toán hạng đích; toán hạng còn lại là toán hạng nguồn
Một toán hạng được chỉ ra trong lệnh
Một toán hạng là ngầm định thường là thanh ghi (thanh chứa –accumulator) Được sử dụng trên các máy ở các thế hệ trước
Trang 65January 21, 2024 Bài giảng kiến trúc máy tính
Đánh giá về số địa chỉ toánhạng
Nhiều địa chỉ toán hạng
Trang 66January 21, 2024 Bài giảng kiến trúc máy tính
Trang 67January 21, 2024 Bài giảng kiến trúc máy tính
Điều khiển vào-ra
Chuyển điều khiển (rẽ nhánh)
Điều khiển hệ thống
Trang 68January 21, 2024 Bài giảng kiến trúc máy tính
Đánh giá về số địa chỉ toán hạng
Nhiều địa chỉ toán hạng
Chương trình có nhiều lệnh hơn
Nhận lệnh và thực hiện lệnh nhanh hơn
Trang 69January 21, 2024 Bài giảng kiến trúc máy tính
Độ dài của trường mã thao tác
Số lượng địa chỉ toán hạng
Trang 70January 21, 2024 Bài giảng kiến trúc máy tính
Các thanh ghi
Số thanh ghi của CPU được sử dụng
Các thao tác nào được thực hiện trên các thanh ghi ?
Các phương pháp định địa chỉ (xét sau)(addressing modes)
RISC hay CISC (xét sau)
Reduced Instruction Set Computing
Complex Instruction Set Computing