ktmt completed

148
Bài ging Kiến trúc máy tính Nguyn Kim Khánh - ĐHBKHN 1 5 September 2009 Bài ging Kiến trúc máy tính KIN TRÚC MÁY TÍNH Computer Architecture Nguyn Kim Khánh, PhD. in Computer Engineering Bmôn Kthut máy tính Vin Công nghthông tin và Truyn thông School of Information and Communication Technology (SoICT) 5 September 2009 Bài ging Kiến trúc máy tính 2 NKK-HUT Contact DCE’s Office: 322-C1 SoICT’s Office: 320-C1 Mobile: 091-358-5533 e-mail: [email protected] 5 September 2009 Bài ging Kiến trúc máy tính 3 NKK-HUT Gii thiu hc phn Mã s: IT3030 Khi lượng: 3(3-1-0-6) Đối tượng tham d: Sinh viên đại hc các ngành công nghthông tin thc k5. Điu kin hc phn: Hc phn hc trước: IT1010 (THĐC) Đánh giá: TN/BT/KT(0,3)- T(0,7) 5 September 2009 Bài ging Kiến trúc máy tính 4 NKK-HUT Mc tiêu hc phn Gii thiu các kiến thc cơ bn vkiến trúc máy tính, bao gm: kiến trúc tp lnh và tchc ca máy tính, cũng như các vn đề cơ bn trong thiết kế mt hthng máy tính. Sinh viên có khnăng đánh giá được hiu năng ca các hmáy tính, khai thác và sdng hiu qucác loi máy tính và có khnăng tiếp cn để phát trin các hmáy tính nhúng phc vcác mc đích chuyên dng.

Upload: mrbachkhoa

Post on 12-Jun-2015

1.168 views

Category:

Documents


1 download

DESCRIPTION

slide KTMT thay Nguyen Kim Khanh

TRANSCRIPT

Page 1: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 1

5 September 2009 Bài giảng Kiến trúc máy tính

KIẾN TRÚC MÁY TÍNHComputer Architecture

Nguyễn Kim Khánh, PhD. in Computer EngineeringBộ môn Kỹ thuật máy tínhViện Công nghệ thông tin và Truyền thôngSchool of Information and Communication Technology (SoICT)

5 September 2009 Bài giảng Kiến trúc máy tính 2

NKK-HUT

Contact

DCE’s Office: 322-C1 SoICT’s Office: 320-C1 Mobile: 091-358-5533e-mail: [email protected]

5 September 2009 Bài giảng Kiến trúc máy tính 3

NKK-HUT

Giới thiệu học phần

Mã số: IT3030Khối lượng: 3(3-1-0-6)Đối tượng tham dự: Sinh viên đại học các ngành công nghệ thông tin từ học kỳ 5. Điều kiện học phần:

Học phần học trước: IT1010 (THĐC)Đánh giá: TN/BT/KT(0,3)- T(0,7)

5 September 2009 Bài giảng Kiến trúc máy tính 4

NKK-HUT

Mục tiêu học phần

Giới thiệu các kiến thức cơ bản về kiến trúc máy tính, bao gồm: kiến trúc tập lệnh và tổchức của máy tính, cũng như các vấn đề cơ bản trong thiết kế một hệ thống máy tính. Sinh viên có khả năng đánh giá được hiệu năng của các họ máy tính, khai thác và sửdụng hiệu quả các loại máy tính và có khả năng tiếp cận để phát triển các hệ máy tính nhúng phục vụ các mục đích chuyên dụng.

Page 2: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 2

5 September 2009 Bài giảng Kiến trúc máy tính 5

NKK-HUT

Tài liệu tham khảo chính1. 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)

5 September 2009 Bài giảng Kiến trúc máy tính 6

NKK-HUT

Tài liệu tham khảo ...

5 September 2009 Bài giảng Kiến trúc máy tính 7

NKK-HUT

Tài liệu tham khảo ...

5 September 2009 Bài giảng Kiến trúc máy tính 8

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

Page 3: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 3

5 September 2009 Bài giảng Kiến trúc máy tính 9

NKK-HUT

Kiến trúc máy tính

Chương 1GIỚI THIỆU CHUNG

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

5 September 2009 Bài giảng Kiến trúc máy tính 10

NKK-HUT

1.1. Máy tính và phân loại máy tính1.2. Kiến trúc máy tính 1.3. Sự phát triển của máy tính1.4. Hiệu năng máy tính

Nội dung

5 September 2009 Bài giảng Kiến trúc máy tính 11

NKK-HUT

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.

1.1. Máy tính và phân loại máy tính

1. Máy tính

5 September 2009 Bài giảng Kiến trúc máy tính 12

NKK-HUT

Máy tính ....

Page 4: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 4

5 September 2009 Bài giảng Kiến trúc máy tính 13

NKK-HUT

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)

2. Phân loại máy tính

5 September 2009 Bài giảng Kiến trúc máy tính 14

NKK-HUT

Máy tính cá nhân (Personal Computers)Máy chủ (Server Computers) Máy tính nhúng (Embedded Computers)

Phân loại máy tính hiện đại

5 September 2009 Bài giảng Kiến trúc máy tính 15

NKK-HUT

Là loại máy tính phổ biến nhấtCá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ửdụng bộ xử lý Intel 80881984 Apple đưa ra Macintosh sử dụng bộ xử lý Motorola 68000Giá thành: hàng trăm đến hàng nghìn USD

Máy tính cá nhân PC

5 September 2009 Bài giảng Kiến trúc máy tính 16

NKK-HUT

Thực chất là máy phục vụDùng trong mạng theo mô hình Client/Server (Khách hàng/Người phục vụ)Tốc độ và hiệu năng tính toán caoDung lượng bộ nhớ lớnĐộ tin cậy caoGiá thành: hàng nghìn đến hàng chục triệu USD.

Máy chủ (Server)

Page 5: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 5

5 September 2009 Bài giảng Kiến trúc máy tính 17

NKK-HUT

Đượ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ụngVí dụ: Điện thoại di độngMá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.

Máy tính nhúng (Embedded Computer)

5 September 2009 Bài giảng Kiến trúc máy tính 18

NKK-HUT

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)

Là định nghĩa hẹp

5 September 2009 Bài giảng Kiến trúc máy tính 19

NKK-HUT

Định nghĩa của Hennessy/ Patterson

Kiến trúc máy tính bao gồm:Kiến trúc tập lệnh (Instruction Set Architecture): nghiên cứu máy tính theo cách nhìn của người lập trình (hardware/software interface).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.

5 September 2009 Bài giảng Kiến trúc máy tính 20

NKK-HUT

Ví dụ

Các máy tính PC dùng các bộ xử lý Pentium III và Pentium 4:

cùng chung kiến trúc tập lệnh (IA-32)có tổ chức khác nhau

Page 6: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 6

5 September 2009 Bài giảng Kiến trúc máy tính 21

NKK-HUT

Kiến trúc tập lệnh

Kiến trúc tập lệnh của máy tính bao gồm:Tập lệnh: tập hợp các chuỗi số nhị phân mã hoá cho các thao tác mà máy tính có thể thực hiện Các kiểu dữ liệu: các kiểu dữ liệu màmáy tính có thể xử lý

5 September 2009 Bài giảng Kiến trúc máy tính 22

NKK-HUT

Cấu trúc cơ bản của máy tính

CPU Bé nhí chÝnh

Bus liªn kÕt hÖ thèng

HÖ thèng vµo-ra

5 September 2009 Bài giảng Kiến trúc máy tính 23

NKK-HUT

Bộ xử lý trung tâm (Central Processing Unit): Điều khiển hoạt động của máy tính và xử lý dữ liệu.Bộ nhớ chính (Main Memory): Chứa các chương trình và dữ liệu đang được sử dụng.Hệ thống vào ra (Input/Output System): Trao đổi thông tin giữa máy tính với bên ngoài.Bus liên kết hệ thống (System Interconnection Bus): Kết nối và vận chuyển thông tin giữa các thành phần với nhau.

Các thành phần cơ bản của máy tính

5 September 2009 Bài giảng Kiến trúc máy tính 24

NKK-HUT

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.

Page 7: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 7

5 September 2009 Bài giảng Kiến trúc máy tính 25

NKK-HUT

1.3. Sự phát triển của của máy tính

1. Các thế hệ máy tínhThế hệ thứ nhất: Máy tính dùng đèn điện tửchân không (1950s)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)

5 September 2009 Bài giảng Kiến trúc máy tính 26

NKK-HUT

ENIAC- Máy tính điện tử đầu tiênElectronic Numerical Intergator And Computer Dự án của Bộ Quốc phòng MỹDo John Mauchly và John Presper Eckert ở Đại học Pennsylvania thiết kế.Bắt đầu từ năm 1943, hoàn thành năm 1946

Máy tính dùng đèn điện tử

5 September 2009 Bài giảng Kiến trúc máy tính 27

NKK-HUT

Nặng 30 tấn18000 đèn điện tử và 1500 rơle5000 phép cộng/giâyXử lý theo số thập phânBộ nhớ chỉ lưu trữ dữ liệuLập trình bằng cách thiết lập vị trí của các chuyển mạch và các cáp nối.

ENIAC (tiếp)

5 September 2009 Bài giảng Kiến trúc máy tính 28

NKK-HUT

Đèn điện tử

Page 8: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 8

5 September 2009 Bài giảng Kiến trúc máy tính 29

NKK-HUT

ENIAC (tiếp)

5 September 2009 Bài giảng Kiến trúc máy tính 30

NKK-HUT

Đó là máy tính IAS:Princeton Institute for Advanced StudiesĐược bắt đầu từ 1947, hoàn thành1952Do 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)

Máy tính von Neumann

5 September 2009 Bài giảng Kiến trúc máy tính 31

NKK-HUT

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ệuBộ 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

Đặc điểm chính của máy tính IAS

5 September 2009 Bài giảng Kiến trúc máy tính 32

NKK-HUT

John von Neumann và máy tính IAS

Page 9: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 9

5 September 2009 Bài giảng Kiến trúc máy tính 33

NKK-HUT

Cấu trúc của máy tính von Neumann

5 September 2009 Bài giảng Kiến trúc máy tính 34

NKK-HUTCấu trúc chi tiết của IAS

5 September 2009 Bài giảng Kiến trúc máy tính 35

NKK-HUT

Các máy tính thương mại ra đời

1947 - Eckert-Mauchly Computer Corporation

UNIVAC I (Universal Automatic Computer)1950s - UNIVAC II

Nhanh hơnBộ nhớ lớn hơn

5 September 2009 Bài giảng Kiến trúc máy tính 36

NKK-HUT

UNIVAC I

Page 10: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 10

5 September 2009 Bài giảng Kiến trúc máy tính 37

NKK-HUT

UNIVAC II

5 September 2009 Bài giảng Kiến trúc máy tính 38

NKK-HUT

Hãng IBM

IBM - International Business Machine1953 - IBM 701

Máy tính lưu trữ chương trình đầu tiên của IBMSử dụng cho tính toán khoa học

1955 – IBM 702Các ứng dụng thương mại

5 September 2009 Bài giảng Kiến trúc máy tính 39

NKK-HUT

IBM 701

5 September 2009 Bài giảng Kiến trúc máy tính 40

NKK-HUT

Máy tính PDP-1 của DEC (Digital Equipment Corporation) máy tính mini đầu tiên IBM 7000Hàng trăm nghìn phép cộng trong một giây. Các ngôn ngữ lập trình bậc cao ra đời.

Máy tính dùng transistor

Page 11: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 11

5 September 2009 Bài giảng Kiến trúc máy tính 41

NKK-HUT

Máy tính DEC PDP-1 (1960)

5 September 2009 Bài giảng Kiến trúc máy tính 42

NKK-HUT

IBM 7030 (1961)

5 September 2009 Bài giảng Kiến trúc máy tính 43

NKK-HUT

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).

Máy tính dùng vi mạch SSI, MSI và LSI

5 September 2009 Bài giảng Kiến trúc máy tính 44

NKK-HUT

Luật Moore

Gordon Moore – người đồng sáng lập IntelSố transistors trên chip sẽ gấp đôi sau 18 thángGiá thành của chip hầu như không thay đổiMật độ cao hơn, do vậy đường dẫn ngắn hơn Kích thước nhỏ hơn dẫn tới độ phức tạp tăng lênĐiện năng tiêu thụ ít hơn Hệ thống có ít các chip liên kết với nhau, do đó tăng độ tin cậy

Page 12: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 12

5 September 2009 Bài giảng Kiến trúc máy tính 45

NKK-HUT

Tăng trưởng số transistor trong chip CPU

5 September 2009 Bài giảng Kiến trúc máy tính 46

NKK-HUT

IBM 360 Family

5 September 2009 Bài giảng Kiến trúc máy tính 47

NKK-HUT

PDP-11 (1973)

5 September 2009 Bài giảng Kiến trúc máy tính 48

NKK-HUT

VAX-11 (1981)

Page 13: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 13

5 September 2009 Bài giảng Kiến trúc máy tính 49

NKK-HUT

Micro VAX

5 September 2009 Bài giảng Kiến trúc máy tính 50

NKK-HUT

Siêu máy tính CRAY-1

5 September 2009 Bài giảng Kiến trúc máy tính 51

NKK-HUT

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, RAMCác bộ vi điều khiển (Microcontroller): máy tính chuyên dụng được chế tạo trên 1 chip.

Máy tính dùng vi mạch VLSI/ULSI

5 September 2009 Bài giảng Kiến trúc máy tính 52

NKK-HUT

Ví dụ máy chủ HP

Page 14: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 14

5 September 2009 Bài giảng Kiến trúc máy tính 53

NKK-HUT

Ví dụ máy chủ Sun

SunFire V40z

SunFire V880

SunFire15K

5 September 2009 Bài giảng Kiến trúc máy tính 54

NKK-HUT

2. Sự phát triển của bộ vi xử lý

1971: bộ vi xử lý 4-bit Intel 40041972-1977: các bộ xử lý 8-bit1978-1984: các bộ xử lý 16-bitKhoảng từ 1985: các bộ xử lý 32-bitKhoảng từ 2000: các bộ xử lý 64-bitCác bộ xử lý đa lõi (multicores)Các bộ vi điều khiển (microcontroller)

5 September 2009 Bài giảng Kiến trúc máy tính 55

NKK-HUT

Sự phát triển của Intel x86

4004Bộ vi xử lý đầu tiên 4-bit

8080Bộ vi xử lý đa năng đầu tiên8-bitSử dụng trong PC đầu tiên – Altair

8086 5MHz – 29,000 transistors16-bit8088 (bus dữ liệu bên ngoài 8-bit) sử dụng trong IBM PC đầu tiên

80286Đánh địa chỉ bộ nhớ được16 Mbyte

5 September 2009 Bài giảng Kiến trúc máy tính 56

NKK-HUT

Sự phát triển của Intel x86 (tiếp)80386

32-bitHỗ trợ đa nhiệm

80486Tăng cường bộ nhớ cache trên chipĐường ống lệnhCó bộ đồng xử lý toán trên chip

PentiumSiêu vô hướngBus dữ liệu 64-bitĐa lệnh được thực hiện song song

Pentium ProTăng cường tổ chức siêu vô hướngDự đoán rẽ nhánhPhân tích luồng dữ liệuSuy đoán đông

Page 15: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 15

5 September 2009 Bài giảng Kiến trúc máy tính 57

NKK-HUT

Sự phát triển của Intel x86 (tiếp)Pentium IICông nghệ MMX

Xử lý đồ họa, video & audioPentium III

Thêm các lệnh xử lý dấu phẩy động cho đồ họa 3D

Pentium 4Tăng cường xử lý số dấu phẩy động vàmultimedia

Duo Core: 2 bộ xử lý trên chipCore 2: Kiến trúc 64-bitCore 2 Quad – 3GHz – 820 triệu transistors

4 bộ xử lý trong 1chip

5 September 2009 Bài giảng Kiến trúc máy tính 58

NKK-HUT

Intel 4004 - bộ vi xử lý 4-bit

5 September 2009 Bài giảng Kiến trúc máy tính 59

NKK-HUT

Intel 8080 - bộ vi xử lý 8-bit

5 September 2009 Bài giảng Kiến trúc máy tính 60

NKK-HUT

Intel 80286 - bộ vi xử lý 16-bit

Page 16: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 16

5 September 2009 Bài giảng Kiến trúc máy tính 61

NKK-HUT

80386 - bộ vi xử lý 32-bit đầu tiên của Intel

5 September 2009 Bài giảng Kiến trúc máy tính 62

NKK-HUT

Intel Pentium (32-bit)

5 September 2009 Bài giảng Kiến trúc máy tính 63

NKK-HUT

Pentium III và Pentium 4 (32-bit)

Pentium III Pentium 4

5 September 2009 Bài giảng Kiến trúc máy tính 64

NKK-HUT

Multicores

Page 17: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 17

5 September 2009 Bài giảng Kiến trúc máy tính 65

NKK-HUT

3. Sự phát triển của thiết bị ngoại vi

Giao tiếpngười-máymáy-máy

Đa dạngTruyền thôngTốc độ

5 September 2009 Bài giảng Kiến trúc máy tính 66

NKK-HUT

4. Phần mềm máy tính

Phần mềm ứng dụngPhần mềm hệ thống

Hệ điều hànhQuản lý: nhiệm vụ, bộ nhớ, files, vào-raLập lịch….

Công cụ lập trình và chương trình dịchCác trình điều khiển thiết bị….

NKK-HUT

Ngôn ngữ lập trình

High Level Language Program

Assembly Language Program

Machine Language Program

Compiler

Assembler

temp = v[k];v[k] = v[k+1];v[k+1] = temp;

lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)

0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

5 September 2009 Bài giảng Kiến trúc máy tính 68

NKK-HUT

1.4. Hiệu năng máy tính (performance)

Performance =Execution time

1

Performance =CPU execution time

1

CPU execution time = Instructions × (Cycles Per Instruction) × (Secs per cycle)

= Instructions × CPI / (Clock rate)

Page 18: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 18

5 September 2009 Bài giảng Kiến trúc máy tính 69

NKK-HUT

CPI (Cycles Per Instruction)

Số chu ky cần thiết để thực hiện lệnh

execution time =clock rate

executed instructions × CPI

CPI =

executed instructions

execution time × clock rate

5 September 2009 Bài giảng Kiến trúc máy tính 70

NKK-HUT

executed instructions

MIPS (Million Instruction Per Second)

Số triệu lệnh được thực hiện trong 1 second

MIPS =execution time×10

6

5 September 2009 Bài giảng Kiến trúc máy tính 71

NKK-HUT

106 ・CPI

clock rate

Quan hệ giữa MIPS và CPI

exec time of 1 inst.

Với CPI = 4

program execution time(T)

n inst. executed

T=n・CPI・clock rate

1MIPS=

n

T・106

MIPS=106 ・MIPSclock rate

CPI =

exec time of 1 inst.

5 September 2009 Bài giảng Kiến trúc máy tính 72

NKK-HUT

executed floating point operations

MFLOPS

million of floating point operations per second

MFLOPS =execution time×106

GFLOPS(109 )

TFLOPS(1012)

Page 19: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 19

5 September 2009 Bài giảng Kiến trúc máy tính 73

NKK-HUT

Ví dụ 1

Tính MIPS của bộ xử lý với:clock rate = 2GHz và CPI = 4

0.5ns

2ns

1 chu kỳ = 1/(2x10-9) = 0,5nsCPI = 4 1 lệnh = 4x0,5ns = 2nsVậy bộ xử lý thực hiện được 500MIPS

5 September 2009 Bài giảng Kiến trúc máy tính 74

NKK-HUT

Ví dụ 2

Tính CPI của bộ xử lý với:clock rate = 1GHz và 400 MIPS?

1ns

4x108 lệnh thực hiện trong 1s 1 lệnh thực hiện trong 1/(4x108)s = 2,5nsCPI = 2,5

5 September 2009 Bài giảng Kiến trúc máy tính 75

NKK-HUT

Hết chương 1

Page 20: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 1

Kiến trúc máy tính

Chương 2CƠ BẢN VỀ LOGIC SỐ

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 2

Nội dung giáo trình

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 3

2.1. Các hệ đếm cơ bản2.2. Đại số Boole2.3. Cổng logic2.4. Mạch tổ hợp2.5. Mạch dãy

Nội dung của chương 2NKK-HUT

5 September 2009 Bài giảng Kiến trúc Máy tính 4

2.1. Các hệ đếm cơ bản

Hệ thập phân (Decimal System) con người sử dụng

Hệ nhị phân (Binary System) máy tính sử dụng

Hệ mười sáu (Hexadecimal System) dùng để viết gọn cho số nhị phân

Page 21: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 5

1. Hệ thập phân

Cơ số 1010 chữ số: 0,1,2,3,4,5,6,7,8,9Dùng n chữ số thập phân có thể biểu diễn được 10n giá trị khác nhau:

00...000 = 099...999 = 10n - 1

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 6

Dạng tổng quát của số thập phân

Giá trị của A được hiểu như sau:

mnn a...aaa...aaA −−−= 1011 ,

mm

nn

nn a...aaa...aaA −

−−

−−

− +++++++= 101010101010 11

00

11

11

in

miiaA 10∑

−=

=

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 7

Ví dụ số thập phân

472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2

Các chữ số của phần nguyên:472 : 10 = 47 dư 2 47 : 10 = 4 dư 7 4 : 10 = 0 dư 4

Các chữ số của phần lẻ:0.38 x 10 = 3.8 phần nguyên = 3

0.8 x 10 = 8.0 phần nguyên = 8

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 8

2. Hệ nhị phân

Cơ số 22 chữ số nhị phân: 0 và 1chữ số nhị phân gọi là bit (binary digit)Bit là đơn vị thông tin nhỏ nhấtDùng n bit có thể biểu diễn được 2n giá trịkhác nhau:

00...000 = 011...111 = 2n - 1

Page 22: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 9

Dạng tổng quát của số nhị phân

Giá trị của A được tính như sau:

mnn a...aaa...aaA −−−= 1011 ,

mm

nn

nn a...aaa...aaA −

−−

−−

− +++++++= 222222 11

00

11

11

in

miiaA 2∑

−=

=

Có một số nhị phân A như sau:

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 10

Ví dụ số nhị phân

1101001.1011(2) =6 5 4 3 2 1 0 -1 -2 -3 -4

= 26 + 25 + 23 + 20 + 2-1 + 2-3 + 2-4

= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625

= 105.6875(10)

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 11

Chuyển đổi số nguyên thập phân sang nhị phân

Phương pháp 1: chia dần cho 2 rồi lấy phần dưPhương pháp 2: Phân tích thành tổng của các số 2i nhanh hơn

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 12

Phương pháp chia dần cho 2

Ví dụ: chuyển đổi 105(10)105 : 2 = 52 dư 1 52 : 2 = 26 dư 0 26 : 2 = 13 dư 0 13 : 2 = 6 dư 1 6 : 2 = 3 dư 0 3 : 2 = 1 dư 1 1 : 2 = 0 dư 1

Kết quả: 105(10) = 1101001(2)

Page 23: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 13

Phương pháp phân tích thành tổng của các 2i

Kết quả: 105(10) = 0110 1001(2)

27 26 25 24 23 22 21 20

128 64 32 16 8 4 2 10 1 1 0 1 0 0 1

Ví dụ 1: chuyển đổi 105(10)105 = 64 + 32 + 8 +1 = 26 + 25 + 23 + 20

Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8 = 214 + 29 + 26 + 25 + 23

17000(10) = 0100 0010 0110 1000(2)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 14

Chuyển đổi số lẻ thập phân sang nhị phân

Ví dụ 1: chuyển đổi 0.6875(10)

0.6875 x 2 = 1.375 phần nguyên = 10.375 x 2 = 0.75 phần nguyên = 00.75 x 2 = 1.5 phần nguyên = 10.5 x 2 = 1.0 phần nguyên = 1

Kết quả : 0.6875(10)= 0.1011(2)

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 15

Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)

Ví dụ 2: chuyển đổi 0.81(10)0.81 x 2 = 1.62 phần nguyên = 10.62 x 2 = 1.24 phần nguyên = 10.24 x 2 = 0.48 phần nguyên = 00.48 x 2 = 0.96 phần nguyên = 00.96 x 2 = 1.92 phần nguyên = 10.92 x 2 = 1.84 phần nguyên = 10.84 x 2 = 1.68 phần nguyên = 1

0.81(10) ≈ 0.1100111(2)

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 16

Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)

Ví dụ 3: chuyển đổi 0.2(10)0.2 x 2 = 0.4 phần nguyên = 00.4 x 2 = 0.8 phần nguyên = 00.8 x 2 = 1.6 phần nguyên = 10.6 x 2 = 1.2 phần nguyên = 10.2 x 2 = 0.4 phần nguyên = 00.4 x 2 = 0.8 phần nguyên = 00.8 x 2 = 1.6 phần nguyên = 10.6 x 2 = 1.2 phần nguyên = 1

0.2(10) ≈ 0.00110011 (2)

Page 24: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 17

3. Hệ mười sáu (Hexa)

Cơ số 1616 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,FDùng để viết gọn cho số nhị phân: cứ một nhóm 4-bit sẽ được thay bằng một chữ sốHexa

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 18

Quan hệ giữa số nhị phân và số Hexa4-bit Chữ số Hexa

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

Ví dụ chuyển đổi số nhị phân số Hexa:1011 00112 = B316

0000 00002 = 0016

0010 1101 1001 10102 = 2D9A16

1111 1111 1111 11112 = FFFF16

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 19

2.2. Đại số Boole

Đại số Boole sử dụng các biến logic và phép toán logicBiế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:

A AND B : A•BA OR B : A + BNOT A : A

Thứ tự ưu tiên: NOT > AND > OR

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 20

2.2. Đại số Boole

Các phép toán NAND, NOR, XOR:A NAND B : A•B

A NOR B : A + BA XOR B: A ⊕ B = A • B + A • B

Page 25: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 21

Phép toán đại số BooleP Q P P.Q P+Q0011

0101

1100

0001

0111

P Q P⊕Q P.Q P+Q

0011

0101

0110

1110

1000

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 22

Các đồng nhất thức của đại số Boole

A • B = B • A

A • (B + C) = (A • B) + (A • C)

1 • A = A

A • A = 0

A + B = B + A

A + (B • C) = (A + B) • ( A + C)

0 + A = A

A + A = 1

0 • A = 0

A • A = A

A • (B • C) = (A • B) • C

A • B = A + B (Định lý De Morgan)

1 + A = 1

A + A = A

A + (B + C) = (A + B) + C

A + B = A • B (Định lý De Morgan)

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 23

2.3. Các cổng logic (Gate)

Các cổng cơ bảnANDORNOT

Chức năng có thểbiểu diễn bằng bảng thật (truth table)

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 24

Các cổngNANDNORXOR

Các cổng logic (tiếp)

Page 26: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 25

Tập đầy đủ

Là tập các cổng có thể thực hiện được bất kỳ hàm logic nào từ các cổng của tập đó.Một số ví dụ về tập đầy đủ:

{AND, OR, NOT} {AND, NOT}{OR, NOT}{NAND}{NOR}

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 26

Sử dụng cổng NAND

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 27

Sử dụng cổng NORNKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 28

Một số ví dụ vi mạch logic

Page 27: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 29

Hàm logic

Hàm logic có thể được biểu diễn theo một vài cách:

Bảng thật (Truth table)Bìa Cac-nôBiểu thức logicDạng sơ đồ

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 30

2.4. Mạch tổ hợp

Mạch tổ hợp là mạch logic trong đó tín hiệu ra chỉ phụ thuộc tín hiệu vào ở thời điểm hiện tại. Là mạch không nhớ và được thực hiện bằng các cổng logic cơ bảnMạch tổ hợp có thể được định nghĩa theo ba cách:

Bảng thậtDạng sơ đồ Phương trình Boole

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 31

Bộ dồn kênh (Multiplexer-MUX)

Multiplexer2n đầu vào dữ liệun đầu vào chọn1 đầu ra

Đầu vào chọn (S) xác định đầu vào nào (I) sẽ được nối với đầu ra.

4-data input MUX

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 32

Multiplexer (tiếp)

Thực hiện MUX bốn đầu vào dữ liệu

Page 28: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 33

Bộ phân kênh (Demultiplexer – DeMUX)NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 34

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.

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 35

Bộ giải mã (tiếp)NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 36

Bộ giải mã 74LS139

Page 29: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 37

Bộ mã hóa (Encoder)NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 38

Bộ cộng (Adder)

Bộ bán tổng (Half-adder)Cộng hai bit tạo ra bit tổng và bit nhớ

Bộ toàn tổng (Full-adder)Cộng 3 bit Cho phép xây dựng bộ cộng N-bit

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 39

Bộ cộng (tiếp)NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 40

Bộ cộng 16-bit

A 16-bit ripple-carry adder

Page 30: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 41

2.5. Mạch dãy

Mạch dãy là mạch logic trong đó tín hiệu ra phụ thuộc tín hiệu vào ở hiện tại và quá khứLà mạch có nhớ, được thực hiện bằng phần tử nhớ (Latch, Flip-Flop) và có thểkết hợp với các cổng logic cơ bản Mạch dãy bao gồm:

Mạch tổ hợp Mạch hồi tiếp

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 42

Các thành phần chính của mạch dãy

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 43

Chốt (Latch)

Có khả năng nhớ bit

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 44

Chốt (tiếp)

Page 31: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 45

D Latch

D Latch (đồng bộ theo mức)Tránh tổ hợp SR = 11

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 46

Flip-Flops

D Flip-Flop (Đồng bộ theo sườn)(Flip-Flop D đồng bộ theo sườn dương)

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 47

Flip-Flops (tiếp)

Low level High level Positive edge Negative edge

Latches Flip-flops

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 48

JK Flip-Flop

J K Qn+1

0 0 Qn

0 1 01 0 11 1 Qn

Page 32: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 49

Ví dụ chip

D latches JK flip-flops

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 50

Thanh ghi dịch

Có chức năng lưu trữ và dịch số liệu

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 51

Chip thanh ghi

74164 shift

Register chip

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 52

Bộ đếm

Bộ đếm nhị phânThiết kế đơn giảnB bits có thể đếm từ 0 đến 2B−1Bộ đếm không đồng bộ (Ripple counter)Bộ đếm đồng bộ

Page 33: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 53

Ví dụ bộ đếm không đồng bộ (ripple counter)

A modulo-8

binary ripple

counter

LSB

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 54

Ví dụ bộ đếm đồng bộ

Được thiết kế dựa trên nguyên tắc sau:Thay đổi đầu ra nếu bit đếm trước đó là 1Q1 thay đổi khi Q0 = 1Q2 thay đổi khi Q1Q0 = 11

NKK-HUT

5 September 2009 Bài giảng Kiến trúc máy tính 55

Hết chương 2

Page 34: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 1

5 September 2009 Bài giảng Kiến trúc máy tính 1

NKK-HUT

Kiến trúc máy tính

Chương 3TỔNG QUAN VỀHỆ THỐNG MÁY TÍNH

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

5 September 2009 Bài giảng Kiến trúc máy tính 2

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

5 September 2009 Bài giảng Kiến trúc máy tính 3

NKK-HUT

3.1. Các thành phần cơ bản của máy tính3.2. Hoạt động cơ bản của máy tính3.3. Bus liên kết hệ thống

Nội dung của chương 3

5 September 2009 Bài giảng Kiến trúc máy tính 4

NKK-HUT

3.1. Các thành phần cơ bản của máy tính

Bộ xử lý trung tâm (Central Processing Unit)Bộ nhớ (Memory)Hệ thống vào ra (Input/Output System)Bus liên kết hệ thống (System Interconnection Bus)

Page 35: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 2

5 September 2009 Bài giảng Kiến trúc máy tính 5

NKK-HUT

Chức năng: điều khiển hoạt động của máy tính xử lý dữ liệu

Nguyên tắc hoạt động cơ bản: CPU hoạt động theo chương trình nằm trong bộ nhớ chính.

1. Bộ xử lý trung tâm (CPU)

5 September 2009 Bài giảng Kiến trúc máy tính 6

NKK-HUT

Cấu trúc cơ bản của CPU

5 September 2009 Bài giảng Kiến trúc máy tính 7

NKK-HUT

Đơn vị điều khiển (Control Unit - CU): điều khiển hoạt động của máy tính theo chương trình đã định sẵn.Đơn vị số học và logic (Arithmetic and Logic Unit - ALU): thực hiện các phép toán số học vàphép toán logic. Tập thanh ghi (Register File - RF): lưu giữ các thông tin tạm thời phục vụ cho hoạt động của CPU. Đơn vị nối ghép bus (Bus Interface Unit - BIU) kết nối và trao đổi thông tin giữa bus bên trong (internal bus) và bus bên ngoài (external bus).

Các thành phần cơ bản của CPU

5 September 2009 Bài giảng Kiến trúc máy tính 8

NKK-HUT

Tốc độ của bộ xử lý

Tốc độ của bộ xử lý: Số lệnh được thực hiện trong 1 giây MIPS (Million of Instructions per Second)Khó đánh giá chính xác

Tần số xung nhịp của bộ xử lý: Bộ xử lý hoạt động theo một xung nhịp (Clock) có tần số xác địnhTốc độ của bộ xử lý được đánh giá gián tiếp thông qua tần số của xung nhịp

Page 36: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 3

5 September 2009 Bài giảng Kiến trúc máy tính 9

NKK-HUT

Tốc độ bộ xử lý (tiếp)

T0: chu kỳ xung nhịpTần số xung nhịp: f0 = 1/T0

Mỗi thao tác của bộ xử lý cần kT0

T0 càng nhỏ bộ xử lý chạy càng nhanhVí dụ: Máy tính dùng bộ xử lý 2GHz

Ta có f0 = 2GHz = 2x109Hz T0 = 1/f0 = 1/(2x109) = 0,5 ns.

Dạng xung nhịp

5 September 2009 Bài giảng Kiến trúc máy tính 10

NKK-HUT

2. Bộ nhớ máy tính

Chức năng: lưu trữ chương trình và dữliệu.Các thao tác cơ bản với bộ nhớ:

Thao tác ghi (Write)Thao tác đọc (Read)

Các thành phần chính: Bộ nhớ trong (Internal Memory)Bộ nhớ ngoài (External Memory)

5 September 2009 Bài giảng Kiến trúc máy tính 11

NKK-HUT

Các thành phần của bộ nhớ máy tính

5 September 2009 Bài giảng Kiến trúc máy tính 12

NKK-HUT

Chức năng và đặc điểm: Chứa các thông tin mà CPU có thể trao đổi trực tiếpTốc độ rất nhanhDung lượng không lớnSử dụng bộ nhớ bán dẫn: ROM và RAM

Các loại bộ nhớ trong:Bộ nhớ chính Bộ nhớ cache (bộ nhớ đệm)

Bộ nhớ trong

Page 37: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 4

5 September 2009 Bài giảng Kiến trúc máy tính 13

NKK-HUT

Bộ nhớ chính (Main Memory)

Chứa các chương trình và dữliệu đang được CPU sử dụng.Tổ chức thành các ngăn nhớ được đánh địa chỉ.Ngăn nhớ thường được tổchức theo byte.Nội dung của ngăn nhớ có thể thay đổi, song địa chỉ vật lý của ngăn nhớ luôn cố định.

5 September 2009 Bài giảng Kiến trúc máy tính 14

NKK-HUT

Bộ nhớ cache

Bộ nhớ có tốc độ nhanh được đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độCPU truy cập bộ nhớDung lượng nhỏ hơn bộ nhớ chính Tốc độ nhanh hơnCache thường được chia thành một sốmức Cache có thể được tích hợp trên cùng chip bộ xử lý. Cache có thể có hoặc không

5 September 2009 Bài giảng Kiến trúc máy tính 15

NKK-HUT

Bộ nhớ ngoài (External Memory)Chức năng và đặc điểm

Lưu giữ tài nguyên phần mềm của máy tínhĐược kết nối với hệ thống dưới dạng các thiết bị vào-ra Dung lượng lớn

Tốc độ chậm

Các loại bộ nhớ ngoàiBộ nhớ từ: đĩa cứng, đĩa mềmBộ nhớ quang: đĩa CD, DVD Bộ nhớ bán dẫn: Flash disk, memory card

5 September 2009 Bài giảng Kiến trúc máy tính 16

NKK-HUT

3. Hệ thống vào-ra (Input-Output)

Chức năng: Trao đổi thông tin giữa máy tính với thế giới bên ngoài. Các thao tác cơ bản:

Vào dữ liệu (Input) Ra dữ liệu (Output)

Các thành phần chính:Các thiết bị ngoại vi (Peripheral Devices)Các mô-đun vào-ra (IO Modules)

Page 38: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 5

5 September 2009 Bài giảng Kiến trúc máy tính 17

NKK-HUT

Cấu trúc cơ bản của hệ thống vào-ra

5 September 2009 Bài giảng Kiến trúc máy tính 18

NKK-HUT

Các thiết bị ngoại vi

Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tínhCác loại thiết bị ngoại vi cơ bản

Thiết bị vào: bàn phím, chuột, máy quét ...Thiết bị ra: màn hình, máy in ...Thiết bị nhớ: các ổ đĩa ...Thiết bị truyền thông: MODEM ...

5 September 2009 Bài giảng Kiến trúc máy tính 19

NKK-HUT

Mô-đun vào-ra

Chức năng: nối ghép các thiết bị ngoại vi với máy tínhMỗi mô-đun vào-ra có một hoặc một vài cổng vào-ra (I/O Port). Mỗi cổng vào-ra được đánh một địa chỉxác định. Các thiết bị ngoại vi được kết nối và trao đổi dữ liệu với máy tính thông qua các cổng vào-ra.

5 September 2009 Bài giảng Kiến trúc máy tính 20

NKK-HUT

3.2. Hoạt động cơ bản của máy tính

Là hoạt động cơ bản của máy tínhMáy tính lặp đi lặp lại hai bước:

Nhận lệnhThực hiện lệnh

Thực hiện chương trình bị dừng nếu thực hiện lệnh bị lỗi hoặc gặp lệnh dừng.

1. Thực hiện chương trình

chu trình lệnh

Page 39: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 6

5 September 2009 Bài giảng Kiến trúc máy tính 21

NKK-HUT

Chu trình lệnh

5 September 2009 Bài giảng Kiến trúc máy tính 22

NKK-HUT

Nhận lệnh

Bắt đầu mỗi chu trình lệnh, CPU nhận lệnh từbộ nhớ chính. Bộ đếm chương trình PC (Program Counter) của CPU giữ địa chỉ của lệnh sẽ được nhận.CPU nhận lệnh từ ngăn nhớ được trỏ bởi PC. Lệnh được nạp vào thanh ghi lệnh IR(Instruction Register). Sau khi lệnh được nhận vào, nội dung PC tự động tăng để trỏ sang lệnh kế tiếp.

5 September 2009 Bài giảng Kiến trúc máy tính 23

NKK-HUT

Minh họa quá trình nhận lệnh

5 September 2009 Bài giảng Kiến trúc máy tính 24

NKK-HUT

Thực hiện lệnh

Bộ xử lý giải mã lệnh đã được nhận vàphát tín hiệu điều khiển thực hiện thao tác mà lệnh yêu cầu.Các kiểu thao tác của lệnh:

Trao đổi dữ liệu giữa CPU và bộ nhớ chínhTrao đổi dữ liệu giữa CPU và mô-đun vào-raXử lý dữ liệu: thực hiện các phép toán sốhọc hoặc phép toán logic với các dữ liệu.Điều khiển rẽ nhánhKết hợp các thao tác trên.

Page 40: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 7

5 September 2009 Bài giảng Kiến trúc máy tính 25

NKK-HUT

2. Ngắt (Interrupt)

Khái niệm chung về ngắt: Ngắt là cơ chếcho phép CPU tạm dừng chương trình đang thực hiện để chuyển sang thực hiện một chương trình khác, gọi là chương trình con phục vụ ngắt. Các loại ngắt:

Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0.Ngắt do lỗi phần cứng, ví dụ lỗi bộ nhớ RAM.Ngắt do mô-đun vào-ra phát tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu.

5 September 2009 Bài giảng Kiến trúc máy tính 26

NKK-HUT

Hoạt động ngắt

Sau khi hoàn thành mỗi một lệnh, bộ xử lý kiểm tra tín hiệu ngắt Nếu không có ngắt bộ xử lý nhận lệnh tiếp theo của chương trình hiện tạiNếu có tín hiệu ngắt:

Tạm dừng chương trình đang thực hiện Cất ngữ cảnh (các thông tin liên quan đến chương trình bị ngắt)Thiết lập PC trỏ đến chương trình con phục vụ ngắtChuyển sang thực hiện chương trình con phục vụ ngắtCuối chương trình con phục vụ ngắt, khôi phục ngữcảnh và tiếp tục chương trình đang bị tạm dừng

5 September 2009 Bài giảng Kiến trúc máy tính 27

NKK-HUT

Hoạt động ngắt (tiếp)

5 September 2009 Bài giảng Kiến trúc máy tính 28

NKK-HUT

Chu trình lệnh với ngắt

Page 41: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 8

5 September 2009 Bài giảng Kiến trúc máy tính 29

NKK-HUT

Xử lý với nhiều tín hiệu yêu cầu ngắtXử lý ngắt tuần tự

Khi một ngắt đang được thực hiện, các ngắt khác sẽbị cấm.Bộ xử lý sẽ bỏ qua các ngắt tiếp theo trong khi đang xử lý một ngắtCác yêu cầu ngắt vẫn đang đợi và được kiểm tra sau khi ngắt đầu tiên được xử lý xongCác ngắt được thực hiện tuần tự

Xử lý ngắt ưu tiên Các ngắt được định nghĩa mức ưu tiên khác nhauNgắt có mức ưu tiên thấp hơn có thể bị ngắt bởi ngắt ưu tiên cao hơn Xẩy ra ngắt lồng nhau

5 September 2009 Bài giảng Kiến trúc máy tính 30

NKK-HUT

3. Hoạt động vào-ra

Hoạt động vào-ra: là hoạt động trao đổi dữ liệu giữa mô-đun vào-ra với bên trong máy tính.Các kiểu hoạt động vào-ra:

CPU trao đổi dữ liệu với mô-đun vào-ra Mô-đun vào-ra trao đổi dữ liệu trực tiếp với bộ nhớ chính (DMA- Direct Memory Access).

5 September 2009 Bài giảng Kiến trúc máy tính 31

NKK-HUT

3.3. Bus liên kết hệ thống

Các mô-đun trong máy tính:CPUMô-đun nhớMô-đun vào-racần được kết nối với nhau

1. Luồng thông tin trong máy tính

5 September 2009 Bài giảng Kiến trúc máy tính 32

NKK-HUT

Kết nối mô-đun nhớ

Page 42: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 9

5 September 2009 Bài giảng Kiến trúc máy tính 33

NKK-HUT

Kết nối mô-đun nhớ (tiếp)

Địa chỉ đưa đến để xác định ngăn nhớDữ liệu được đưa đến khi ghi Dữ liệu hoặc lệnh được đưa ra khi đọc (lưu ý: bộ nhớ không phân biệt lệnh vàdữ liệu) Nhận các tín hiệu điều khiển:Điều khiển đọc (Read)Điều khiển ghi (Write)

5 September 2009 Bài giảng Kiến trúc máy tính 34

NKK-HUT

Kết nối mô-đun vào-ra

5 September 2009 Bài giảng Kiến trúc máy tính 35

NKK-HUT

Kết nối mô-đun vào-ra (tiếp)

Địa chỉ đưa đến để xác định cổng vào-ra Ra dữ liệu (Output)

Nhận dữ liệu từ CPU hoặc bộ nhớ chínhĐưa dữ liệu ra thiết bị ngoại vi

Vào dữ liệu (Input)Nhận dữ liệu từ thiết bị ngoại viĐưa dữ liệu vào CPU hoặc bộ nhớ chính

Nhận các tín hiệu điều khiển từ CPUPhát các tín hiệu điều khiển đến thiết bị ngoại vi Phát các tín hiệu ngắt đến CPU

5 September 2009 Bài giảng Kiến trúc máy tính 36

NKK-HUT

Kết nối CPU

Page 43: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 10

5 September 2009 Bài giảng Kiến trúc máy tính 37

NKK-HUT

Kết nối CPU (tiếp)

Phát địa chỉ đến các mô-đun nhớ hay các mô-đun vào-ra Đọc lệnh và dữ liệuĐưa dữ liệu ra (sau khi xử lý)Phát tín hiệu điều khiển đến các mô-đun nhớ và các mô-đun vào-ra Nhận các tín hiệu ngắt

5 September 2009 Bài giảng Kiến trúc máy tính 38

NKK-HUT

Bus: tập hợp các đường kết nối dùng đểvận chuyển thông tin giữa các mô-đun của máy tính với nhau. Các bus chức năng:

Bus địa chỉBus dữ liệuBus điều khiển

Độ rộng bus: là số đường dây của bus cóthể truyền các bit thông tin đồng thời (chỉdùng cho bus địa chỉ và bus dữ liệu)

2. Cấu trúc bus cơ bản

5 September 2009 Bài giảng Kiến trúc máy tính 39

NKK-HUT

Sơ đồ cấu trúc bus cơ bản

5 September 2009 Bài giảng Kiến trúc máy tính 40

NKK-HUT

Bus địa chỉ

Chức năng: vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào-ra Độ rộng bus địa chỉ: cho biết số lượng ngăn nhớ tối đa được đánh địa chỉ.

N bit: AN-1, AN-2, ... A2, A1, A0

có thể đánh địa chỉ tối đa cho 2N ngăn nhớ (không gian địa chỉ bộ nhớ)

Ví dụ: Bộ xử lý Pentium có bus địa chỉ 32 bit có khả năng đánh địa chỉ cho 232 bytes nhớ

(4GBytes) (ngăn nhớ tổ chức theo byte)

Page 44: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 11

5 September 2009 Bài giảng Kiến trúc máy tính 41

NKK-HUT

Bus dữ liệu

Chức năng:vận chuyển lệnh từ bộ nhớ đến CPUvận chuyển dữ liệu giữa CPU, mô đun nhớ, mô đun vào-ra với nhau

Độ rộng bus dữ liệu: Xác định số bit dữ liệu có thể được trao đổi đồng thời.

M bit: DM-1, DM-2, ... D2, D1, D0

M thường là 8, 16, 32, 64,128 bit. Ví dụ: Các bộ xử lý Pentium có bus dữliệu 64 bit

5 September 2009 Bài giảng Kiến trúc máy tính 42

NKK-HUT

Bus điều khiển

Chức năng: vận chuyển các tín hiệu điều khiểnCác loại tín hiệu điều khiển:

Các tín hiệu điều khiển đọc/ghiCác tín hiệu điều khiển ngắtCác tín hiệu điều khiển bus

5 September 2009 Bài giảng Kiến trúc máy tính 43

NKK-HUT

Một số tín hiệu điều khiển điển hình

Các tín hiệu (phát ra từ CPU) điều khiển đọc-ghi:

Memory Read (MEMR): điều khiển đọc dữ liệu từ một ngăn nhớ có địa chỉ xác định lên bus dữliệu.Memory Write (MEMW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu đến một ngăn nhớ có địa chỉ xác định.I/O Read (IOR): điều khiển đọc dữ liệu từ một cổng vào-ra có địa chỉ xác định lên bus dữ liệu.I/O Write (IOW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu ra một cổng có địa chỉ xác định.

5 September 2009 Bài giảng Kiến trúc máy tính 44

NKK-HUT

Một số tín hiệu điều khiển điển hình (tiếp)

Các tín hiệu điều khiển ngắt:Interrupt Request (INTR): Tín hiệu từ bộ điều khiển vào-ra gửi đến yêu cầu ngắt CPU để trao đổi vào-ra. Tín hiệu INTR có thể bị che.Interrupt Acknowledge (INTA): Tín hiệu phát ra từCPU báo cho bộ điều khiển vào-ra biết CPU chấp nhận ngắt để trao đổi vào-ra.Non Maskable Interrupt (NMI): tín hiệu ngắt không che được gửi đến ngắt CPU.Reset: Tín hiệu từ bên ngoài gửi đến CPU và các thành phần khác để khởi động lại máy tính.

Page 45: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 12

5 September 2009 Bài giảng Kiến trúc máy tính 45

NKK-HUT

Một số tín hiệu điều khiển điển hình (tiếp)

Các tín hiệu điều khiển bus:Bus Request (BRQ) hay là Hold: Tín hiệu từ mô-đun điều khiển vào-ra gửi đến yêu cầu CPU chuyển nhượng quyền sử dụng bus.Bus Grant (BGT) hay là Hold Acknowledge(HLDA): Tín hiệu phát ra từ CPU chấp nhận chuyển nhượng quyền sử dụng bus.Lock/ Unlock: Tín hiệu cấm/cho-phép xin chuyển nhượng bus

5 September 2009 Bài giảng Kiến trúc máy tính 46

NKK-HUT

Đặc điểm của cấu trúc đơn bus

Bus hệ thống chỉ phục vụ được một yêu cầu trao đổi dữ liệu tại một thời điểm Bus hệ thống phải có tốc độ bằng tốc độ bus của mô-đun nhanh nhất trong hệ thốngBus hệ thống phụ thuộc vào cấu trúc bus (các tín hiệu) của bộ xử lý các mô-đun nhớ vàcác mô-đun vào-ra cũng phụ thuộc vào bộ xửlý.Khắc phục: phân cấp bus cấu trúc đa bus

5 September 2009 Bài giảng Kiến trúc máy tính 47

NKK-HUT

3. Phân cấp bus trong máy tính

Tổ chức thành nhiều bus trong hệ thống máy tính

Cho các thành phần khác nhau:Bus của bộ xử lýBus của bộ nhớ chínhCác bus vào-ra

Các bus khác nhau về tốc độ

Bus bộ nhớ chính và các bus vào-ra không phụ thuộc vào bộ xử lý cụ thể.

5 September 2009 Bài giảng Kiến trúc máy tính 48

NKK-HUT

Một số bus điển hình trong PC Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh nhấtBus của bộ nhớ chính (nối ghép với các mô-đun RAM)AGP bus (Accelerated Graphic Port) - Bus đồ họa tăng tốc: nối ghép card màn hình tăng tốc.PCI bus(Peripheral Component Interconnect): nối ghép với các thiết bị ngoại vi có tốc độ trao đổi dữliệu nhanh.IDE (Integrated Device Electronics): Bus kết nối với ổ đĩa cứng hoặc ổ đĩa CD, DVD USB (Universal Serial Bus): Bus nối tiếp đa năng

Page 46: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 13

5 September 2009 Bài giảng Kiến trúc máy tính 49

NKK-HUT

Chipset 975

5 September 2009 Bài giảng Kiến trúc máy tính 50

NKK-HUT

Chipset

5 September 2009 Bài giảng Kiến trúc máy tính 51

NKK-HUT

Ví dụ về bo mạch chính

5 September 2009 Bài giảng Kiến trúc máy tính 52

NKK-HUT

Page 47: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 14

5 September 2009 Bài giảng Kiến trúc máy tính 53

NKK-HUT

4. Các vấn đề liên quan đến thiết kế bus

Các kiểu busPhân xử busĐịnh thời bus

5 September 2009 Bài giảng Kiến trúc máy tính 54

NKK-HUT

Các kiểu bus

Bus dành riêng (Dedicated):Các đường địa chỉ và dữ liệu tách rờiƯu điểm: điều khiển đơn giảnNhược điểm: có nhiều đường kết nối

Bus dồn kênh (Multiplexed)Các đường dùng chung cho địa chỉ và dữ liệu Có đường điều khiển để phân biệt có địa chỉhay có dữ liệu Ưu điểm: có ít đường dâyNhược điểm:

Điều khiển phức tạp hơnHiệu năng hạn chế

5 September 2009 Bài giảng Kiến trúc máy tính 55

NKK-HUT

Phân xử bus

Có nhiều mô-đun điều khiển busví dụ: CPU và bộ điều khiển vào-ra

Chỉ cho phép một mô-đun điều khiển bus ở một thời điểm.Phân xử bus có thể là tập trung hay phân tán.

5 September 2009 Bài giảng Kiến trúc máy tính 56

NKK-HUT

Phân xử bus (tiếp)

Phân xử bus tập trung Có một Bộ điều khiển bus (Bus Controller) hay còn gọi là Bộ phân xử bus (Arbiter)Có thể là một phần của CPU hoặc mạch tách rời.

Phân xử bus phân tánMỗi một mô-đun có thể chiếm bus Có đường điều khiển đến tất cả các mô-đun khác

Page 48: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 15

5 September 2009 Bài giảng Kiến trúc máy tính 57

NKK-HUT

Định thời bus (Timing)

Phối hợp các sự kiện trên busBus đồng bộ

Các sự kiện trên bus được xác định bởi một tín hiệu xung nhịp xác định (clock)Bus Điều khiển bao gồm cả đường ClockTất cả các mô-đun có thể đọc đường clock

Bus không đồng bộKhông có đường tín hiệu ClockKết thúc một sự kiện này trên bus sẽ kích hoạt cho một sự kiện tiếp theo

5 September 2009 Bài giảng Kiến trúc máy tính 58

NKK-HUT

Giản đồ định thời Bus đồng bộ

5 September 2009 Bài giảng Kiến trúc máy tính 59

NKK-HUT

Giản đồ định thời thao tác đọc của Bus không đồng bộ

5 September 2009 Bài giảng Kiến trúc máy tính 60

NKK-HUT

Giản đồ định thời thao tác ghi của Bus không đồng bộ

Page 49: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 16

5 September 2009 Bài giảng Kiến trúc máy tính 61

NKK-HUT

Hết chương 3

Page 50: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 1

5 September 2009 Bài giảng Kiến trúc Máy tính 1

NKK-HUT

Kiến trúc máy tính

Chương 4KIẾN TRÚC TẬP LỆNH(Instruction Set Architecture)

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

5 September 2009 Bài giảng Kiến trúc máy tính 2

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

5 September 2009 Bài giảng Kiến trúc Máy tính 3

NKK-HUT

4.1. Mô hình lập trình của máy tính4.2. Các đặc trưng của lệnh máy4.3. Các kiểu toán hạng 4.4. Các kiểu thao tác của lệnh4.5. Các phương pháp định địa chỉ4.6. Khái niệm về lập trình hợp ngữ4.7. RISC4.8. Thứ tự các byte trong bộ nhớ chính4.9. Ví dụ kiến trúc tập lệnh

Nội dung của chương 4

5 September 2009 Bài giảng Kiến trúc Máy tính 4

NKK-HUT

4.1. Mô hình lập trình của máy tính

Page 51: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 2

5 September 2009 Bài giảng Kiến trúc Máy tính 5

NKK-HUT

Tập thanh ghi

Chức năng và đặc điểm:Chứa các thông tin tạm thời phục vụ chohoạt động ở thời điểm hiện tại của CPUĐược coi là mức đầu tiên của hệ thống nhớSố lượng thanh ghi nhiều tăng hiệu năngcủa CPUCó hai loại thanh ghi:

Các thanh ghi lập trình đượcCác thanh ghi không lập trình được

5 September 2009 Bài giảng Kiến trúc Máy tính 6

NKK-HUT

Phân loại thanh ghi theo chức năng

Thanh ghi địa chỉ: quản lý địa chỉ của ngănnhớ hay cổng vào-ra. Thanh ghi dữ liệu: chứa tạm thời các dữliệu. Thanh ghi đa năng: có thể chứa địa chỉhoặc dữ liệu. Thanh ghi điều khiển/trạng thái: chứa cácthông tin điều khiển và trạng thái của CPU.Thanh ghi lệnh: chứa lệnh đang được thựchiện.

5 September 2009 Bài giảng Kiến trúc Máy tính 7

NKK-HUT

Một số thanh ghi điển hình

Các thanh ghi địa chỉBộ đếm chương trình PC (Program Counter)Con trỏ dữ liệu DP (Data Pointer)Con trỏ ngăn xếp SP (Stack Pointer)Thanh ghi cơ sở và thanh ghi chỉ số(Base Register & Index Register)

Các thanh ghi dữ liệuThanh ghi trạng thái

5 September 2009 Bài giảng Kiến trúc Máy tính 8

NKK-HUT

Bộ đếm chương trình PC

Còn được gọi là con trỏ lệnh IP (Instruction Pointer)Giữ địa chỉ của lệnh tiếp theo sẽ đượcnhận vào. Sau khi một lệnh được nhận vào, nộidung PC tự động tăng để trỏ sang lệnhkế tiếp.

Page 52: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 3

5 September 2009 Bài giảng Kiến trúc Máy tính 9

NKK-HUT

Minh họa bộ đếm chương trình

5 September 2009 Bài giảng Kiến trúc Máy tính 10

NKK-HUT

Thanh ghi con trỏ dữ liệu

Chứa địa chỉ của ngăn nhớ dữ liệu màCPU muốn truy nhậpThường có một số thanh ghi con trỏ dữliệu

5 September 2009 Bài giảng Kiến trúc Máy tính 11

NKK-HUT

Minh hoạ thanh ghi con trỏ dữ liệu

5 September 2009 Bài giảng Kiến trúc Máy tính 12

NKK-HUT

Ngăn xếp (Stack)

Ngăn xếp là vùng nhớ có cấu trúc LIFO (Last In - First Out)Ngăn xếp thường dùng để phục vụ chochương trình conĐáy ngăn xếp là một ngăn nhớ xác địnhĐỉnh ngăn xếp là thông tin nằm ở vị trítrên cùng trong ngăn xếpĐỉnh ngăn xếp có thể bị thay đổi

Page 53: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 4

5 September 2009 Bài giảng Kiến trúc Máy tính 13

NKK-HUT

Con trỏ ngăn xếp SP (Stack Pointer)

Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpKhi cất một thông tin vào ngăn xếp:

Nội dung của SP tự động giảmThông tin được cất vào ngăn nhớ được trỏbởi SP

Khi lấy một thông tin ra khỏi ngăn xếp:Thông tin được đọc từ ngăn nhớ được trỏ bởiSPNội dung của SP tự động tăng

Khi ngăn xếp rỗng, SP trỏ vào đáy

5 September 2009 Bài giảng Kiến trúc Máy tính 14

NKK-HUT

Minh họa con trỏ ngăn xếp SP

5 September 2009 Bài giảng Kiến trúc Máy tính 15

NKK-HUT

Thanh ghi cơ sở và thanh ghi chỉ số

Thanh ghi cơ sở: chứa địa chỉ của ngănnhớ cơ sở (địa chỉ cơ sở)Thanh ghi chỉ số: chứa độ lệch địa chỉgiữa ngăn nhớ mà CPU cần truy nhậpso với ngăn nhớ cơ sở (chỉ số)Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số

5 September 2009 Bài giảng Kiến trúc Máy tính 16

NKK-HUT

Minh họa thanh ghi cơ sở và thanh ghi chỉ số

Page 54: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 5

5 September 2009 Bài giảng Kiến trúc Máy tính 17

NKK-HUT

Các thanh ghi dữ liệu

Chứa các dữ liệu tạm thời hoặc các kếtquả trung gianCần có nhiều thanh ghi dữ liệuCác thanh ghi số nguyên: 8, 16, 32, 64 bitCác thanh ghi số dấu phẩy động

5 September 2009 Bài giảng Kiến trúc Máy tính 18

NKK-HUT

Thanh ghi trạng thái (Status Register)

Còn gọi là thanh ghi cờ (Flag Register) Chứa các thông tin trạng thái của CPU

Các cờ phép toán: báo hiệu trạng thái củakết quả phép toánCác cờ điều khiển: biểu thị trạng thái điềukhiển của CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 19

NKK-HUT

Ví dụ cờ phép toán

Cờ Zero (cờ rỗng): được thiết lập lên 1 khikết quả của phép toán bằng 0. Cờ Sign (cờ dấu): được thiết lập lên 1 khi kếtquả phép toán nhỏ hơn 0Cờ Carry (cờ nhớ): được thiết lập lên 1 nếuphép toán có nhớ ra ngoài bit cao nhất cờbáo tràn với số không dấu.Cờ Overflow (cờ tràn): được thiết lập lên 1 nếu cộng hai số nguyên cùng dấu mà kết quảcó dấu ngược lại cờ báo tràn với số códấu .

5 September 2009 Bài giảng Kiến trúc Máy tính 20

NKK-HUT

Ví dụ cờ điều khiển

Cờ Interrupt (Cờ cho phép ngắt):Nếu IF = 1 CPU ở trạng thái cho phépngắt với tín hiệu yêu cầu ngắt từ bên ngoàigửi tớiNếu IF = 0 CPU ở trạng thái cấm ngắtvới tín hiệu yêu cầu ngắt từ bên ngoài gửitới

Page 55: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 6

5 September 2009 Bài giảng Kiến trúc Máy tính 21

NKK-HUT

Tập thanh ghi của một số bộ xử lý

5 September 2009 Bài giảng Kiến trúc Máy tính 22

NKK-HUT

4.2. Các đặc trưng của lệnh máy

Mỗi bộ xử lý có một tập lệnh xác địnhTập lệnh thường có hàng chục đến hàngtrăm lệnhMỗ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ợinhớ chính là các lệnh của hợp ngữ

Giới thiệu chung về tập lệnh

5 September 2009 Bài giảng Kiến trúc Máy tính 23

NKK-HUT

Các thành phần của lệnh máy

Mã thao tác (operation code opcode): mã hóa cho thao tác mà bộ xử lý phải thựchiệnĐịa chỉ toán hạng: chỉ ra nơi chứa các toánhạng mà thao tác sẽ tác động

Toán hạng nguồn: dữ liệu vào của thao tácToán hạng đích: dữ liệu ra của thao tác

5 September 2009 Bài giảng Kiến trúc Máy tính 24

NKK-HUT

Mô tả lệnh

Lệnh máy là mã nhị phânĐể dễ hiểu và dễ nhớ đối với con người, người ta mô tả lệnh bằng các ký hiệu gợi nhớ

Ví dụ: ADD, SUB, LOADToán hạng có thể được mô tả như sau:

ADD A,B

Page 56: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 7

5 September 2009 Bài giảng Kiến trúc Máy tính 25

NKK-HUT

Các kiểu lệnh

Xử lý dữ liệuLưu trữ dữ liệu (bộ nhớ chính)Vận chuyển dữ liệu (vào-ra)Điều khiển luồng dữ liệu

5 September 2009 Bài giảng Kiến trúc Máy tính 26

NKK-HUT

Số lượng địa chỉ toán hạng trong lệnh (1)

Ba địa chỉ toán hạng:2 toán hạng nguồn, 1 toán hạng đíchc = a + bTừ lệnh dài vì phải mã hoá địa chỉ cho cảba toán hạngĐược sử dụng trên các bộ xử lý tiên tiến

5 September 2009 Bài giảng Kiến trúc Máy tính 27

NKK-HUT

Số lượng địa chỉ toán hạng trong lệnh (2)

Hai địa chỉ toán hạng:Một toán hạng vừa là toán hạng nguồnvừa là toán hạng đích; toán hạng còn lại làtoán hạng nguồna = a + bGiá trị cũ của 1 toán hạng nguồn bị mất vìphải chứa kết quảRút gọn độ dài từ lệnhPhổ biến

5 September 2009 Bài giảng Kiến trúc Máy tính 28

NKK-HUT

Số lượng địa chỉ toán hạng trong lệnh (3)

Một địa chỉ toán hạng:Một toán hạng được chỉ ra trong lệnhMộ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

Page 57: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 8

5 September 2009 Bài giảng Kiến trúc Máy tính 29

NKK-HUT

Số lượng địa chỉ toán hạng trong lệnh (4)

0 địa chỉ toán hạng:Các toán hạng đều được ngầm địnhSử dụng StackVí dụ:

push apush baddpop ccó nghĩa là : c = a+b

không thông dụng

5 September 2009 Bài giảng Kiến trúc Máy tính 30

NKK-HUT

Đánh giá về số địa chỉ toán hạng

Nhiều địa chỉ toán hạngCác lệnh phức tạp hơnCần nhiều thanh ghiChương trình có ít lệnh hơnNhận lệnh và thực hiện lệnh chậm hơn

Ít địa chỉ toán hạngCác lệnh đơn giản hơnCần ít thanh ghiChương trình có nhiều lệnh hơnNhận lệnh và thực hiện lệnh nhanh hơn

5 September 2009 Bài giảng Kiến trúc Máy tính 31

NKK-HUT

Các vấn đề của thiết kế tập lệnh (1)

Về thao tácBao nhiêu thao tác ?Các thao tác nào ?Mức độ phức tạp của các thao tác ?

Các kiểu dữ liệuCác khuôn dạng lệnhĐộ dài của trường mã thao tácSố lượng địa chỉ toán hạng

5 September 2009 Bài giảng Kiến trúc Máy tính 32

NKK-HUT

Các vấn đề của thiết kế tập lệnh (2)

Các thanh ghiSố thanh ghi của CPU được sử dụngCác thao tác nào được thực hiện trên cácthanh ghi ?

Các phương pháp định địa chỉ (xét sau) (addressing modes)RISC hay CISC (xét sau)

Reduced Instruction Set ComputingComplex Instruction Set Computing

Page 58: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 9

5 September 2009 Bài giảng Kiến trúc Máy tính 33

NKK-HUT

4.3. Các kiểu toán hạng

Địa chỉSố

Số nguyênSố dấu phẩy động

Ký tựVí dụ: mã ASCII

Dữ liệu logicCác bit hoặc các cờ

5 September 2009 Bài giảng Kiến trúc Máy tính 34

NKK-HUT

4.4. Các kiểu thao tác của lệnh

Chuyển dữ liệuXử lý số học với số nguyênXử lý logicĐiều khiển vào-raChuyển điều khiển (rẽ nhánh)Điều khiển hệ thống

5 September 2009 Bài giảng Kiến trúc Máy tính 35

NKK-HUT

Các lệnh chuyển dữ liệu

MOVE Copy dữ liệu từ nguồn đến đíchLOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lýSTORE Cất dữ liệu từ bộ xử lý đến bộ nhớEXCHANGE Trao đổi nội dung của nguồn và đíchCLEAR Chuyển các bit 0 vào toán hạng đíchSET Chuyển các bit 1 vào toán hạng đíchPUSH Cất nội dung toán hạng nguồn vào ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến

toán hạng đích

5 September 2009 Bài giảng Kiến trúc Máy tính 36

NKK-HUT

Các lệnh số học

ADD Cộng hai toán hạng

SUBTRACT Trừ hai toán hạng

MULTIPLY Nhân hai toán hạng

DIVIDE Chia hai toán hạng

ABSOLUTE Lấy trị tuyệt đối toán hạng

NEGATE Đổi dấu toán hạng (lấy bù 2)

INCREMENT Tăng toán hạng thêm 1

DECREMENT Giảm toán hạng đi 1

COMPARE Trừ hai toán hạng để lập cờ

Page 59: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 10

5 September 2009 Bài giảng Kiến trúc Máy tính 37

NKK-HUT

Các lệnh logic

AND Thực hiện phép AND hai toán hạng

OR Thực hiện phép OR hai toán hạng

XOR Thực hiện phép XOR hai toán hạng

NOT Đảo bit của toán hạng (lấy bù 1)

TEST Thực hiện phép AND hai toán hạngđể lập cờ

5 September 2009 Bài giảng Kiến trúc Máy tính 38

NKK-HUT

Minh hoạ các lệnh AND, OR, XORGiả sử có hai thanh ghi chứa dữ liệu như sau:

(R1) = 1010 1010(R2) = 0000 1111

R1 (R1) AND (R2) = 0000 1010Phép toán AND dùng để xoá một số bit và giữnguyên một số bit còn lại của toán hạng.R1 (R1) OR (R2) = 1010 1111Phép toán OR dùng để thiết lập một số bit và giữnguyên một số bit còn lại của toán hạng.R1 (R1) XOR (R2) = 1010 0101Phép toán XOR dùng để đảo một số bit và giữnguyên một số bit còn lại của toán hạng.

5 September 2009 Bài giảng Kiến trúc Máy tính 39

NKK-HUT

Các lệnh logic (tiếp)

SHIFT Dịch trái (phải) toán hạngROTATE Quay trái (phải) toán hạng

5 September 2009 Bài giảng Kiến trúc Máy tính 40

NKK-HUT

Các thao tác SHIFT và ROTATE

Page 60: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 11

5 September 2009 Bài giảng Kiến trúc Máy tính 41

NKK-HUT

Các lệnh vào ra chuyên dụng

INPUT Copy dữ liệu từ một cổng xácđịnh đưa đến đích

OUTPUT Copy dữ liệu từ nguồn đếnmột cổng xác định

5 September 2009 Bài giảng Kiến trúc Máy tính 42

NKK-HUT

Các lệnh chuyển điều khiển

JUMP (BRANCH) Lệnh nhảy không điều kiện: nạp vào PC một địa chỉ xác định

JUMP CONDITIONAL Lệnh nhảy có điều kiện:điều kiện đúng nạp vào PC một địa chỉ xác địnhđiều kiện sai không làm gì cả

CALL Lệnh gọi chương trình con: Cất nội dung của PC (địa chỉ trở về) ra một vị trí xácđịnh (thường ở Stack)Nạp vào PC địa chỉ của lệnh đầu tiên của chương trìnhcon

RETURN Lệnh trở về từ chương trình con: Khôi phục địa chỉ trở về trả lại cho PC để trở vềchương trình chính

5 September 2009 Bài giảng Kiến trúc Máy tính 43

NKK-HUT

Lệnh rẽ nhánh không điều kiện

Chuyển tới thực hiện lệnhở vị trí có địa chỉ XXX:

PC XXX

5 September 2009 Bài giảng Kiến trúc Máy tính 44

NKK-HUT

Lệnh rẽ nhánh có điều kiện

Trong lệnh có kèm theo điều kiệnKiểm tra điều kiện trong lệnh:

Nếu điều kiện đúng chuyển tới thực hiệnlệnh ở vị trí có địa chỉ XXX PC XXX

Nếu điều kiện sai chuyển sang thực hiệnlệnh_kế_tiếp

Điều kiện thường được kiểm tra thôngqua các cờCó nhiều lệnh rẽ nhánh có điều kiện

Page 61: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 12

5 September 2009 Bài giảng Kiến trúc Máy tính 45

NKK-HUT

Minh hoạ lệnh rẽ nhánh có điều kiện

5 September 2009 Bài giảng Kiến trúc Máy tính 46

NKK-HUT

Lệnh CALL và RETURN

Lệnh gọi chương trình con: lệnh CALLCất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) raStackNạp vào PC địa chỉ của lệnh đầu tiên của chươngtrình con được gọiBộ xử lý được chuyển sang thực hiện chương trình

con tương ứngLệnh trở về từ chương trình con: lệnh RETURN

Lấy địa chỉ của lệnh_kế_tiếp được cất ở Stack nạptrả lại cho PC Bộ xử lý được điều khiển quay trởvề thực hiện tiếp lệnh nằm sau lệnh CALL

5 September 2009 Bài giảng Kiến trúc Máy tính 47

NKK-HUT

Minh hoạ lệnh CALL và RETURN

5 September 2009 Bài giảng Kiến trúc Máy tính 48

NKK-HUT

Gọi các thủ tục lồng nhau

Page 62: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 13

5 September 2009 Bài giảng Kiến trúc Máy tính 49

NKK-HUT

Sử dụng Stack

5 September 2009 Bài giảng Kiến trúc Máy tính 50

NKK-HUT

Các lệnh điều khiển hệ thống

HALT Dừng thực hiện chương trìnhWAIT Tạm dừng thực hiện chương trình,

lặp kiểm tra điều kiện cho đến khithoả mãn thì tiếp tục thực hiện

NO OPERATION Không thực hiện gì cảLOCK Cấm không cho xin chuyển nhượng

busUNLOCK Cho phép xin chuyển nhượng bus

5 September 2009 Bài giảng Kiến trúc Máy tính 51

NKK-HUT

4.5. Các phương pháp định địa chỉ

Khái niệm về định địa chỉ (addressing)Toán hạng của lệnh có thể là:

Một giá trị cụ thể nằm ngay trong lệnhNội dung của thanh ghiNội dung của ngăn nhớ hoặc cổng vào-ra

Phương pháp định địa chỉ (addressing modes) là cách thức địa chỉ hóa trongtrường địa chỉ của lệnh để xác định nơichứa toán hạng

5 September 2009 Bài giảng Kiến trúc Máy tính 52

NKK-HUT

Các phương pháp định địa chỉ thông dụng

Định địa chỉ tức thìĐịnh địa chỉ thanh ghiĐịnh địa chỉ trực tiếpĐịnh địa chỉ gián tiếp qua thanh ghiĐịnh địa chỉ gián tiếpĐịnh địa chỉ dịch chuyển

Page 63: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 14

5 September 2009 Bài giảng Kiến trúc Máy tính 53

NKK-HUT

Định địa chỉ tức thì

Toán hạng nằm ngay trong Trường địachỉ của lệnhChỉ có thể là toán hạng nguồnVí dụ:

ADD R1, 5 ; R1 R1+5Không tham chiếu bộ nhớTruy nhập toán hạng rất nhanhDải giá trị của toán hạng bị hạn chế

5 September 2009 Bài giảng Kiến trúc Máy tính 54

NKK-HUT

Sơ đồ định địa chỉ tức thì

5 September 2009 Bài giảng Kiến trúc Máy tính 55

NKK-HUT

Định địa chỉ thanh ghi

Toán hạng được chứa trong thanh ghi cótên trong Trường địa chỉVí dụ:

ADD R1, R2 ; R1 R1+R2Số lượng thanh ghi ít Trường địa chỉchỉ cần ít bit Không tham chiếu bộ nhớTruy nhập toán hạng nhanhTăng số lượng thanh ghi hiệu quả hơn

5 September 2009 Bài giảng Kiến trúc Máy tính 56

NKK-HUT

Sơ đồ định địa chỉ thanh ghi

Page 64: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 15

5 September 2009 Bài giảng Kiến trúc Máy tính 57

NKK-HUT

Định địa chỉ trực tiếp

Toán hạng là ngăn nhớ có địa chỉ đượcchỉ ra trực tiếp trong Trường địa chỉ củalệnhVí dụ: ADD R1, A ;R1 R1 + (A)

Cộng nội dung thanh ghi R1 với nội dung của ngăn nhớ có địa chỉ là ATìm toán hạng trong bộ nhớ ở địa chỉ A

CPU tham chiếu bộ nhớ một lần để truynhập dữ liệu

5 September 2009 Bài giảng Kiến trúc Máy tính 58

NKK-HUT

Sơ đồ định địa chỉ trực tiếp

5 September 2009 Bài giảng Kiến trúc Máy tính 59

NKK-HUT

Định địa chỉ gián tiếp qua thanh ghi

Toán hạng là ngăn nhớ có địa chỉ nằmtrong thanh ghiTrường địa chỉ cho biết tên thanh ghi đóThanh ghi có thể là ngầm địnhThanh ghi này được gọi là thanh ghicon trỏVùng nhớ có thể được tham chiếu làlớn (2n), (với n là độ dài của thanh ghi)

5 September 2009 Bài giảng Kiến trúc Máy tính 60

NKK-HUT

Sơ đồ định địa chỉ gián tiếp qua thanh ghi

Page 65: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 16

5 September 2009 Bài giảng Kiến trúc Máy tính 61

NKK-HUT

Định địa chỉ gián tiếp qua ngăn nhớ

Ngăn nhớ được trỏ bởi Trường địa chỉcủa lệnh chứa địa chỉ của toán hạngCó thể gián tiếp nhiều lầnGiống như khái niệm biến con trỏ vàbiến động trong lập trìnhCPU phải thực hiện tham chiếu bộ nhớnhiều lần để tìm toán hạng chậmVùng nhớ có thể được tham chiếu làlớn

5 September 2009 Bài giảng Kiến trúc Máy tính 62

NKK-HUT

Sơ đồ định địa chỉ gián tiếp qua ngăn nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 63

NKK-HUT

Định địa chỉ dịch chuyển

Để xác định toán hạng, Trường địa chỉchứa hai thành phần:

Tên thanh ghiHằng số

Địa chỉ của toán hạng = nội dung thanhghi + hằng sốThanh ghi có thể được ngầm định

5 September 2009 Bài giảng Kiến trúc Máy tính 64

NKK-HUT

Sơ đồ định địa chỉ dịch chuyển

Page 66: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 17

5 September 2009 Bài giảng Kiến trúc Máy tính 65

NKK-HUT

Các dạng của định địa chỉ dịch chuyển

Địa chỉ hoá tương đối với PCThanh ghi là Bộ đếm chương trình PCToán hạng có địa chỉ cách ngăn nhớ đượctrỏ bởi PC một độ lệch xác định

Định địa chỉ cơ sởThanh ghi chứa địa chỉ cơ sởHằng số là chỉ số

Định địa chỉ chỉ sốHằng số là địa chỉ cơ sởThanh ghi chứa chỉ số

5 September 2009 Bài giảng Kiến trúc Máy tính 66

NKK-HUT

4.6. Khái niệm về lập trình hợp ngữ

Hợp ngữ là ngôn ngữ lập trình bậc thấpPhụ thuộc vào bộ xử lý cụ thểLập trình theo các ký hiệu lệnhChương trình dịch: assemblerCú pháp:

Các lệnh của tập lệnhCác lệnh giả của chương trình dịch

5 September 2009 Bài giảng Kiến trúc Máy tính 67

NKK-HUT

4.7. RISC

CISC và RISCCISC Complex Instruction Set Computer:

Máy tính với tập lệnh phức tạpCác bộ xử lý truyền thống: Intel x86, Motorola 680x0

RISC Reduced Instruction Set Computer: Máy tính với tập lệnh thu gọnSunSPARC, Power PC, MIPS, ARM ...RISC đối nghịch với CISC

5 September 2009 Bài giảng Kiến trúc Máy tính 68

NKK-HUT

Các đặc trưng của RISC

Số lượng lệnh ítHầu hết các lệnh truy nhập toán hạng ởcác thanh ghiTruy nhập bộ nhớ bằng các lệnhLOAD/STOREThời gian thực hiện lệnh là một chu kỳmáyCác lệnh có độ dài cố định (32 bit)

Page 67: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 18

5 September 2009 Bài giảng Kiến trúc Máy tính 69

NKK-HUT

Các đặc trưng của RISC (tiếp)

Số lượng khuôn dạng lệnh là ít (<=4)CPU có tập thanh ghi lớnCó ít mode địa chỉ (<=4)Hỗ trợ các thao tác của ngôn ngữ bậccaoĐều được thiết kế kiểu pipeline lệnh

5 September 2009 Bài giảng Kiến trúc Máy tính 70

NKK-HUT

Cửa sổ thanh ghi

5 September 2009 Bài giảng Kiến trúc Máy tính 71

NKK-HUT

4.8. Thứ tự lưu trữ các byte trong bộ nhớ chính

Bộ nhớ chính thường đánh địa chỉ theobyteHai cách lưu trữ thông tin nhiều byte:Đầu nhỏ (Little-endian): Byte có ý nghĩathấp được lưu trữ ở ngăn nhớ có địa chỉnhỏ, byte có ý nghĩa cao được lưu trữ ởngăn nhớ có địa chỉ lớn.Đầu to (Big-endian): Byte có ý nghĩa caođược lưu trữ ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa thấp được lưu trữ ở ngănnhớ có địa chỉ lớn.

5 September 2009 Bài giảng Kiến trúc Máy tính 72

NKK-HUT

Ví dụ lưu trữ dữ liệu 32-bit

0001 1010 0010 1011 0011 1100 0100 1101

Page 68: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 19

5 September 2009 Bài giảng Kiến trúc Máy tính 73

NKK-HUT

Lưu trữ của các bộ xử lý điển hình

Intel 80x86 và các Pentium: little-endianMotorola 680x0, SunSPARC: big-endianPower PC, Itanium: bi-endian

5 September 2009 Bài giảng Kiến trúc Máy tính 74

NKK-HUT

4.9. Ví dụ kiến trúc tập lệnh

Intel x86ARMMIPS

5 September 2009 Bài giảng Kiến trúc Máy tính 75

NKK-HUT

Các kiểu dữ liệu của Intel x86

8 bit Byte16 bit word32 bit double word64 bit quad word128 bit double quadwordAddressing is by 8 bit unitWords do not need to align at even-numbered addressData accessed across 32 bit bus in units of double word read at addresses divisible by 4Little endian

5 September 2009 Bài giảng Kiến trúc Máy tính 76

NKK-HUT

x86 Numeric Data Formats

Page 69: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 20

5 September 2009 Bài giảng Kiến trúc Máy tính 77

NKK-HUT

x86 Addressing Modes

Virtual or effective address is offset into segmentStarting address plus offset gives linear addressThis goes through page translation if paging enabled

12 addressing modes availableImmediateRegister operandDisplacementBaseBase with displacementScaled index with displacementBase with index and displacementBase scaled index with displacementRelative

5 September 2009 Bài giảng Kiến trúc Máy tính 78

NKK-HUT

x86 Addressing Mode Calculation

5 September 2009 Bài giảng Kiến trúc Máy tính 79

NKK-HUT

x86 Instruction Format

5 September 2009 Bài giảng Kiến trúc Máy tính 80

NKK-HUT

ARM Data Types8 (byte), 16 (halfword), 32 (word) bitsHalfword and word accesses should be word alignedNonaligned access alternatives

DefaultTreated as truncatedBits[1:0] treated as zero for word Bit[0] treated as zero for halfwordLoad single word instructions rotate right word aligned data transferred by non word-aligned address one, two or three bytesAlignment checking

Data abort signal indicates alignment fault for attempting unaligned accessUnaligned accessProcessor uses one or more memory accesses to generate transfer of adjacent bytes transparently to the programmer

Unsigned integer interpretation supported for all typesTwos-complement signed integer interpretation supported for all typesMajority of implementations do not provide floating-point hardware

Saves power and areaFloating-point arithmetic implemented in softwareOptional floating-point coprocessorSingle- and double-precision IEEE 754 floating point data types

Page 70: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 21

5 September 2009 Bài giảng Kiến trúc Máy tính 81

NKK-HUT

ARM Endian Support

E-bit in system control registerUnder program control

5 September 2009 Bài giảng Kiến trúc Máy tính 82

NKK-HUT ARM Addressing ModesLoad/Store

Only instructions that reference memoryIndirectly through base register plus offsetOffset

Offset added to or subtracted from base register contents to form the memory address

PreindexMemory address is formed as for offset addressingMemory address also written back to base registerSo base register value incremented or decremented by offset value

PostindexMemory address is base register valueOffset added or subtractedResult written back to base register

Base register acts as index register for preindex and postindexaddressingOffset either immediate value in instruction or another registerIf register scaled register addressing available

Offset register value scaled by shift operatorInstruction specifies shift size

5 September 2009 Bài giảng Kiến trúc Máy tính 83

NKK-HUTARM Indexing Methods

5 September 2009 Bài giảng Kiến trúc Máy tính 84

NKK-HUT ARM Data Processing Instruction Addressing& Branch Instructions

Data Processing Register addressing

Value in register operands may be scaled using a shift operator

Or mixture of register and immediate addressingBranch

ImmediateInstruction contains 24 bit valueShifted 2 bits left

On word boundaryEffective range +/-32MB from PC.

Page 71: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 22

5 September 2009 Bài giảng Kiến trúc Máy tính 85

NKK-HUT

ARM Load/Store Multiple Addressing

Load/store subset of general-purpose registers 16-bit instruction field specifies list of registersSequential range of memory addressesIncrement after, increment before, decrement after, and decrement beforeBase register specifies main memory address Incrementing or decrementing starts before or after first memory access

5 September 2009 Bài giảng Kiến trúc Máy tính 86

NKK-HUT

ARM Load/Store Multiple Addressing Diagram

5 September 2009 Bài giảng Kiến trúc Máy tính 87

NKK-HUT

ARM Instruction Formats

S = For data processing instructions, updates condition codesS = For load/store multiple instructions, execution restricted to supervisor modeP, U, W = distinguish between different types of addressing_modeB = Unsigned byte (B==1) or word (B==0) accessL = For load/store instructions, Load (L==1) or Store (L==0)L = For branch instructions, is return address stored in link register

5 September 2009 Bài giảng Kiến trúc Máy tính 88

NKK-HUT

ARM Immediate Constants Fig 11.11

Page 72: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 23

5 September 2009 Bài giảng Kiến trúc Máy tính 89

NKK-HUT

Thumb Instruction Set

Re-encoded subset of ARM instruction setIncreases performance in 16-bit or less data busUnconditional (4 bits saved)Always update conditional flagsUpdate flag not used (1 bit saved)Subset of instructions

2 bit opcode, 3 bit type field (1 bit saved)Reduced operand specifications (9 bits saved)

5 September 2009 Bài giảng Kiến trúc Máy tính 90

NKK-HUT Expanding Thumb ADD Instruction to ARM Equivalent Fig 11.12

5 September 2009 Bài giảng Kiến trúc Máy tính 91

NKK-HUT

Kiến trúc MIPS

Xem tài liệu: Behrooz Parhami -Computer Architecture: From Microprocessors to Supercomputers –2005.

5 September 2009 Bài giảng Kiến trúc Máy tính 92

NKK-HUT

Hết chương 4

Page 73: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 1

Bài giảng Kiến trúc Máy tính 1

NKK-HUT

Kiến trúc máy tính

Chương 5SỐ HỌC MÁY TÍNH

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

Bài giảng Kiến trúc Máy tính 2

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

Bài giảng Kiến trúc Máy tính 3

NKK-HUT

5.1. Biểu diễn số nguyên 5.2. Phép cộng và phép trừ số nguyên5.3. Phép nhân 5.4. Phép chia5.5. Số dấu phẩy động

Nội dung chương 5

Bài giảng Kiến trúc Máy tính 4

NKK-HUT

5.1. Biểu diễn số nguyên

Số nguyên không dấu (Unsigned Integer)Số nguyên có dấu (Signed Integer)

Page 74: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 2

Bài giảng Kiến trúc Máy tính 5

NKK-HUT

1. Biểu diễn số nguyên không dấu

Giá trị của A được tính như sau:

in

iiaA 2

1

0∑−

=

=

Nguyên tắc tổng quát: Dùng n bit biểu diễn sốnguyên không dấu A:

01221 aaa...aa nn −−

Dải biểu diễn của A: từ 0 đến 2n – 1

Bài giảng Kiến trúc Máy tính 6

NKK-HUT

Các ví dụ

Ví dụ 1. Biểu diễn các số nguyên không dấusau đây bằng 8-bit:

A = 41 ; B = 150Giải:A = 41 = 32 + 8 + 1 = 25 + 23 + 20

41 = 0010 1001

B = 150 = 128 + 16 + 4 + 2 = 27 + 24 + 22 + 21

150 = 1001 0110

Bài giảng Kiến trúc Máy tính 7

NKK-HUT

Các ví dụ (tiếp)

Ví dụ 2. Cho các số nguyên không dấu M, N được biểu diễn bằng 8-bit như sau:

M = 0001 0010N = 1011 1001

Xác định giá trị của chúng ?Giải:

M = 0001 0010 = 24 + 21 = 16 +2 = 18N = 1011 1001 = 27 + 25 + 24 + 23 + 20

= 128 + 32 + 16 + 8 + 1 = 185

Bài giảng Kiến trúc Máy tính 8

NKK-HUT

Với n = 8 bit

0000 0000 = 00000 0001 = 10000 0010 = 20000 0011 = 3

...1111 1111 = 255

Biểu diễn được các giá trị từ 0 đến 255

Chú ý:1111 1111

+ 0000 00011 0000 0000

Vậy: 255 + 1 = 0 ?do tràn nhớ ra

ngoài

Page 75: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 3

Bài giảng Kiến trúc Máy tính 9

NKK-HUT

Trục số học với n = 8 bit

Trục số học:

Trục số học máy tính:

Bài giảng Kiến trúc Máy tính 10

NKK-HUT

Với n = 16 bit, 32 bit, 64 bit

n= 16 bit: dải biểu diễn từ 0 đến 65535 (216 – 1)0000 0000 0000 0000 = 0...0000 0000 1111 1111 = 2550000 0001 0000 0000 = 256...1111 1111 1111 1111 = 65535

n= 32 bit: dải biểu diễn từ 0 đến 232 - 1n= 64 bit: dải biểu diễn từ 0 đến 264 - 1

Bài giảng Kiến trúc Máy tính 11

NKK-HUT

2. Biểu diễn số nguyên có dấu

a. Số bù chín và Số bù mười

Cho một số thập phân A được biểu diễnbằng n chữ số thập phân, ta có:

Số bù chín của A = (10n-1) – ASố bù mười của A = 10n – A

Số bù mười của A = (Số bù chín của A) +1

Bài giảng Kiến trúc Máy tính 12

NKK-HUT

Số bù chín và Số bù mười (tiếp)

Ví dụ: với n=4, cho A = 3265Số bù chín của A:

9999 (104-1)- 3265 (A)

6734Số bù mười của A:

10000 (104)- 3265 (A)

6735

Page 76: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 4

Bài giảng Kiến trúc Máy tính 13

NKK-HUT

b. Số bù một và Số bù hai

Định nghĩa: Cho một số nhị phân A được biểu diễn bằng n bit, ta có:

Số bù một của A = (2n-1) – ASố bù hai của A = 2n – A

Số bù hai của A = (Số bù một của A) +1

Bài giảng Kiến trúc Máy tính 14

NKK-HUT

Số bù một và Số bù hai (tiếp)Ví dụ: với n = 8 bit, cho A = 0010 0101

Số bù một của A được tính như sau:1111 1111 (28-1)

- 0010 0101 (A)1101 1010

đảo các bit của A Số bù hai của A được tính như sau:

1 0000 0000 (28)- 0010 0101 (A)

1101 1011 thực hiện khó khăn

Bài giảng Kiến trúc Máy tính 15

NKK-HUT

Quy tắc tìm Số bù một và Số bù hai

Số bù một của A = đảo giá trị các bit của A(Số bù hai của A) = (Số bù một của A) + 1Ví dụ:

Cho A = 0010 0101Số bù một = 1101 1010

+ 1Số bù hai = 1101 1011

Nhận xét: A = 0010 0101

Số bù hai = + 1101 10111 0000 0000 = 0

(bỏ qua bit nhớ ra ngoài)Số bù hai của A = -A

Bài giảng Kiến trúc Máy tính 16

NKK-HUT

c. Biểu diễn số nguyên có dấu bằng mã bù hai

Với A là số dương: bit an-1 = 0, các bit còn lại biểu diễn độ lớn như số không dấu Với A là số âm: được biểu diễn bằng số bù hai của số dương tương ứng, vì vậy bit an-1 = 1

01221 aaa...aa nn −−

Nguyên tắc tổng quát: Dùng n bit biểu diễn sốnguyên có dấu A:

Page 77: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 5

Bài giảng Kiến trúc Máy tính 17

NKK-HUT

Biểu diễn số dương

0122n aaa...a0 −

in

iiaA 2

2

0∑−

=

=

Giá trị của số dương A:

Dạng tổng quát của số dương A:

Dải biểu diễn cho số dương: 0 đến 2n-1-1

Bài giảng Kiến trúc Máy tính 18

NKK-HUT

Biểu diễn số âm

0122n aaa...a1 −

Dạng tổng quát của số âm A:

in

ii

n aA 222

0

1 ∑−

=

− +−=

Giá trị của số âm A:

Dải biểu diễn cho số âm: -1 đến -2n-1

Bài giảng Kiến trúc Máy tính 19

NKK-HUT

Biểu diễn tổng quát cho số nguyên có dấu

01221 aaa...aa nn −−

Dạng tổng quát của số nguyên A:

in

ii

nn aaA 22

2

0

11 ∑

=

−− +−=

Giá trị của A được xác định như sau:

Dải biểu diễn: từ -(2n-1) đến +(2n-1-1)

Bài giảng Kiến trúc Máy tính 20

NKK-HUT

Các ví dụVí dụ 1. Biểu diễn các số nguyên có dấu sau đây bằng 8-bit:

A = +58 ; B = -80Giải:

A = +58 = 0011 1010

B = -80Ta có: + 80 = 0101 0000Số bù một = 1010 1111

+ 1Số bù hai = 1011 0000

Vậy: B = -80 = 1011 0000

Page 78: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 6

Bài giảng Kiến trúc Máy tính 21

NKK-HUT

Các ví dụ

Ví dụ 2. Hãy xác định giá trị của các số nguyên có dấu được biểu diễn dưới đây:

P = 0110 0010Q = 1101 1011

Giải:P = 0110 0010 = 64+32+2 = +98 Q = 1101 1011 = -128+64+16+8+2+1 = -37

Bài giảng Kiến trúc Máy tính 22

NKK-HUT

Với n = 8 bit

0000 0000 = 00000 0001 = +10000 0010 = +20000 0011 = +3

...0111 1111 = +1271000 0000 = - 1281000 0001 = - 127...

1111 1110 = -21111 1111 = -1

Biểu diễn được các giá trị từ -128 đến +127

Chú ý:+127 + 1 = -128-128 - 1 = +127

do tràn xảy ra

Bài giảng Kiến trúc Máy tính 23

NKK-HUT

Trục số học số nguyên có dấu với n = 8 bit

Trục số học:

Trục số học máy tính:

Bài giảng Kiến trúc Máy tính 24

NKK-HUT

Với n = 16 bit, 32 bit, 64 bit

Với n=16bit: biểu diễn từ -32768 đến +327670000 0000 0000 0000 = 00000 0000 0000 0001 = +1...0111 1111 1111 1111 = +327671000 0000 0000 0000 = -32768...1111 1111 1111 1111 = -1

Với n=32bit: biểu diễn từ -231 đến 231-1Với n=64bit: biểu diễn từ -263 đến 263-1

Page 79: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 7

Bài giảng Kiến trúc Máy tính 25

NKK-HUT

Chuyển đổi từ byte thành word

Đối với số dương: +19 = 0001 0011 (8bit)+19 = 0000 0000 0001 0011 (16bit)

thêm 8 bit 0 bên trái

Đối với số âm:- 19 = 1110 1101 (8bit) - 19 = 1111 1111 1110 1101 (16bit)

thêm 8 bit 1 bên trái

Bài giảng Kiến trúc Máy tính 26

NKK-HUT

3. Biểu diễn số nguyên theo mã BCD

Binary Coded Decimal CodeDùng 4 bit để mã hóa cho các chữ sốthập phân từ 0 đến 9:

0 0000 5 01011 0001 6 01102 0010 7 01113 0011 8 10004 0100 9 1001

còn 6 tổ hợp không sử dụng: 1010, 1011, 1100, 1101, 1110, 1111

Bài giảng Kiến trúc Máy tính 27

NKK-HUT

Ví dụ số BCD

35 0011 0101BCD

61 0110 0001BCD

1087 0001 0000 1000 0111BCD

9640 1001 0110 0100 0000BCD

Bài giảng Kiến trúc Máy tính 28

NKK-HUT

Các kiểu lưu trữ số BCD

BCD không gói (Unpacked BCD):Mỗi số BCD 4-bit được lưu trữ trong 4-bit thấp của mỗi byte.

Ví dụ: Số 35 được lưu trữ như sau:

BCD gói (Packed BCD): Hai số BCD được lưu trữ trong 1 byte.

Ví dụ: Số 35 được lưu trữ như sau:

Page 80: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 8

Bài giảng Kiến trúc Máy tính 29

NKK-HUT

Phép cộng số BCD

35 0011 0101BCD

+ 61 + 0110 0001BCD

96 1001 0110BCD

kết quả đúng (không phải hiệu chỉnh)

87 1000 0111BCD

+ 96 + 1001 0110BCD

183 1 0001 1101 kết quả sai+ 0110 0110 hiệu chỉnh

0001 1000 0011BCD kết quả đúng1 8 3

Hiệu chỉnh: cộng thêm 6 ở những vị trí có nhớ (>9)Bài giảng Kiến trúc Máy tính 30

NKK-HUT

5.2. Thực hiện phép cộng/trừ với số nguyên

1. Phép cộng số nguyên không dấuBộ cộng n-bit

Bài giảng Kiến trúc Máy tính 31

NKK-HUT

Nguyên tắc cộng số nguyên không dấu

Khi cộng hai số nguyên không dấu n-bit, kết quả nhận được là n-bit:Nếu Cout=0 nhận được kết quả đúng.Nếu Cout=1 nhận được kết quả sai, do tràn nhớ ra ngoài (Carry Out).Tràn nhớ ra ngoài khi: tổng > (2n – 1)

Bài giảng Kiến trúc Máy tính 32

NKK-HUT

Ví dụ cộng số nguyên không dấu

57 = 0011 1001+ 34 = + 0010 0010

91 0101 1011 = 64+16+8+2+1=91 đúng

209 = 1101 0001+ 73 = + 0100 1001

282 1 0001 1010 0001 1010 = 16+8+2=26 sai

có tràn nhớ ra ngoài (Cout=1)

Để có kết quả đúng ta thực hiện cộng theo 16-bit: 209 = 0000 0000 1101 0001

+ 73 = + 0000 0000 0100 10010000 0001 0001 1010 = 256+16+8+2 = 282

Page 81: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 9

Bài giảng Kiến trúc Máy tính 33

NKK-HUT

2. Phép đảo dấu

Ta có:+ 37 = 0010 0101

bù một = 1101 1010+ 1

bù hai = 1101 1011 = -37

Lấy bù hai của số âm:- 37 = 1101 1011

bù một = 0010 0100+ 1

bù hai = 0010 0101 = +37

Kết luận: Phép đảo dấu trong máy tính thực chất làlấy bù hai

Bài giảng Kiến trúc Máy tính 34

NKK-HUT

3. Cộng số nguyên có dấu

Khi cộng hai số nguyên có dấu n-bit, kết quảnhận được là n-bit và không cần quan tâm đến bit Cout

.

Cộng hai số khác dấu: kết quả luôn luôn đúng.Cộng hai số cùng dấu:

nếu dấu kết quả cùng dấu với các số hạng thì kết quả là đúng.nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra (Overflow) và kết quả bị sai.

Tràn xảy ra khi tổng nằm ngoài dải biểu diễn:[ -(2n-1),+(2n-1-1)]

Bài giảng Kiến trúc Máy tính 35

NKK-HUT

Ví dụ cộng số nguyên có dấu không tràn( + 70) = 0100 0110

+ ( + 42) = 0010 1010+ 112 0111 0000 = +112

(+ 97) = 0110 0001+ (- 52) = 1100 1100 (+52=0011 0100)

+ 45 1 0010 1101 = +45

( - 90) = 1010 0110 (+90=0101 1010)+ ( +36) = 0010 0100

- 54 1100 1010 = - 54

( - 74) = 1011 0110 (+74=0100 1010)+( - 30) = 1110 0010 (+30=0001 1110)

-104 1 1001 1000 = -104Bài giảng Kiến trúc Máy tính 36

NKK-HUT

Ví dụ cộng số nguyên có dấu bị tràn( + 75) = 0100 1011

+( + 82) = 0101 0010+157 1001 1101

= - 128+16+8+4+1= -99 sai

( - 104) = 1001 1000 (+104=0110 1000)+ ( - 43) = 1101 0101 (+ 43 =0010 1011)

- 147 1 0110 1101 = 64+32+8+4+1= +109 sai

Cả hai ví dụ đều tràn vì tổng nằm ngoài dải biểu diễn [-128, +127]

Page 82: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 10

Bài giảng Kiến trúc Máy tính 37

NKK-HUT

4. Nguyên tắc thực hiện phép trừ

Phép trừ hai số nguyên: X-Y = X+(-Y)Nguyên tắc: Lấy bù hai của Y để được –Y, rồi cộng với X

Bài giảng Kiến trúc Máy tính 38

NKK-HUT

5.3. Thực hiện phép nhân

1011 Số bị nhân (11)x 1101 Số nhân (13)

10110000 Các tích riêng phần

10111011

10001111 Tích (143)

Nhân số nguyên không dấu

Bài giảng Kiến trúc Máy tính 39

NKK-HUT

Nhân số nguyên không dấu (tiếp)

Các tích riêng phần được xác định như sau:Nếu bit của số nhân bằng 0 tích riêng phần bằng 0. Nếu bit của số nhân bằng 1 tích riêng phần bằng sốbị nhân.Tích riêng phần tiếp theo được dịch trái một bit so với tích riêng phần trước đó.

Tích bằng tổng các tích riêng phầnNhân hai số nguyên n-bit, tích có độ dài 2n bit (không bao giờ tràn).

Bài giảng Kiến trúc Máy tính 40

NKK-HUT

Bộ nhân số nguyên không dấu

Page 83: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 11

Bài giảng Kiến trúc Máy tính 41

NKK-HUT

Lưu đồ nhân số nguyên không dấu

Bài giảng Kiến trúc Máy tính 42

NKK-HUT

Ví dụ nhân số nguyên không dấuSố bị nhân M = 1011 (11)Số nhân Q = 1101 (13)Tích = 1000 1111 (143)

C A Q0 0000 1101 Các giá trị khởi đầu

+ 10110 1011 1101 A ← A + M0 0101 1110 Dịch phải0 0010 1111 Dịch phải

+ 10110 1101 1111 A ← A + M0 0110 1111 Dịch phải

+ 10111 0001 1111 A ← A + M0 1000 1111 Dịch phải

Bài giảng Kiến trúc Máy tính 43

NKK-HUT

Ví dụ nhân số nguyên không dấuSố bị nhân M = 0010 (2)Số nhân Q = 0011 (3)Tích = 0000 0110 (6)

C A Q0 0000 0011 Các giá trị khởi đầu+ 0010

0 0010 0011 A ← A + M0 0001 0001 Dịch phải+ 0010

0 0011 00010 0001 1000 Dịch phải0 0000 1100 Dịch phải0 0000 0110 Dịch phải

Bài giảng Kiến trúc Máy tính 44

NKK-HUT

Nhân số nguyên có dấu

Sử dụng thuật giải nhân không dấuSử dụng thuật giải Booth

Page 84: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 12

Bài giảng Kiến trúc Máy tính 45

NKK-HUT

Sử dụng thuật giải nhân không dấu

Bước 1. Chuyển đổi số bị nhân và sốnhân thành số dương tương ứngBước 2. Nhân hai số dương bằng thuật giải nhân số nguyên không dấu, được tích của hai số dương.Bước 3. Hiệu chỉnh dấu của tích:

Nếu hai thừa số ban đầu cùng dấu thì giữnguyên kết quả ở bước 2. Nếu hai thừa số ban đầu là khác dấu thì đảo dấu kết quả của bước 2.

Bài giảng Kiến trúc Máy tính 46

NKK-HUT

Thuật giải Booth B¾t ®Çu

A := 0, Q-1 := 0 M := Sè bÞ nh©n Q := Sè nh©n Bé ®Õm := n

Bé ®Õm = 0 ?

KÕt thóc

=01=10 Q0,Q-1 = ?

A := A + M

DÞch ph¶i sè häc A,Q,Q-1

Bé ®Õm:=Bé ®Õm-1

Yes

No

A := A - M =00=11

Bài giảng Kiến trúc Máy tính 47

NKK-HUT

5.4. Thực hiện phép chia

Số bị chia 10010011 1011 Số chia 1011 00001101 Thương

0011101011001111

1011100 Phần dư

Chia số nguyên không dấu

Bài giảng Kiến trúc Máy tính 48

NKK-HUT

Bộ chia số nguyên không dấu

Page 85: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 13

Bài giảng Kiến trúc Máy tính 49

NKK-HUT

Lưu đồ chia số nguyên không dấu

Bài giảng Kiến trúc Máy tính 50

NKK-HUT

Chia số nguyên có dấu

Bước 1. Chuyển đổi số bị chia và số chia về thành số dương tương ứng. Bước 2. Sử dụng thuật giải chia số nguyên không dấu đểchia hai số dương, kết quả nhận được là thương Q vàphần dư R đều là dươngBước 3. Hiệu chỉnh dấu của kết quả như sau:(Lưu ý: phép đảo dấu thực chất là thực hiện phép lấy bù hai)

đảo dấuđảo dấudươngâm

giữ nguyêngiữ nguyêndươngdương

đảo dấugiữ nguyênâmâm

giữ nguyênđảo dấuâmdương

Số dưThươngSố chiaSố bị chia

Bài giảng Kiến trúc Máy tính 51

NKK-HUT

5.5. Số dấu phẩy động1. Nguyên tắc chung

Floating Point Number biểu diễn cho sốthựcTổng quát: một số thực X được biểu diễn theo kiểu số dấu phẩy động như sau:

X = M * RE

M là phần định trị (Mantissa),R là cơ số (Radix),E là phần mũ (Exponent).

Bài giảng Kiến trúc Máy tính 52

NKK-HUT

2. Chuẩn IEEE754/85

Cơ số R = 2Các dạng:

Dạng 32-bitDạng 44-bitDạng 64-bitDạng 80-bit

Page 86: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 14

Bài giảng Kiến trúc Máy tính 53

NKK-HUT

Các dạng biểu diễn chính

Bài giảng Kiến trúc Máy tính 54

NKK-HUT

Dạng 32 bit

S là bit dấu:S = 0 số dươngS = 1 số âm

e (8 bit) là mã excess-127 của phần mũ E:e = E+127 E = e – 127 giá trị 127 gọi là là độ lệch (bias)

m (23 bit) là phần lẻ của phần định trị M:M = 1.m

Công thức xác định giá trị của số thực:X = (-1)S

*1.m * 2e-127

Bài giảng Kiến trúc Máy tính 55

NKK-HUT

Ví dụ 1

Xác định giá trị của số thực được biểu diễn bằng 32-bit như sau:1100 0001 0101 0110 0000 0000 0000 0000

S = 1 số âme = 1000 00102 = 130 E = 130-127=3

Vậy X = -1.10101100 * 23 = -1101.011 = -13.375

0011 1111 1000 0000 0000 0000 0000 0000 = ?= +1.0

Bài giảng Kiến trúc Máy tính 56

NKK-HUT

Ví dụ 2

Biểu diễn số thực X= 83.75 về dạng số dấu phẩy động IEEE754 32-bit

Giải:X = 83.75(10) = 1010011.11(2) = 1.01001111 x 26

Ta có:S = 0 vì đây là số dươngE = e-127 = 6 e = 127 + 6 = 133(10) = 1000 0101(2)

Vậy:X = 0100 0010 1010 0111 1000 0000 0000 0000

Page 87: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 15

Bài giảng Kiến trúc Máy tính 57

NKK-HUT

Ví dụ 3

Biểu diễn số thực X= -0,2 về dạng số dấu phẩy động IEEE754 32-bit

Giải:X = -0,2(10) = - 0.00110011...0011...(2) =

= - 1.100110011..0011... x 2-3

Ta có:S = 1 vì đây là số âmE = e-127 = -3 e = 127 -3 = 124(10) = 0111 1100(2)

Vậy:X = 1011 1110 0100 1100 1100 1100 1100 1100

Bài giảng Kiến trúc Máy tính 58

NKK-HUT

Bài tập

Biểu diễn các số thực sau đây về dạng sốdấu phẩy động IEEE754 32-bit:

X = - 27.0625; Y = 1/32

Bài giảng Kiến trúc Máy tính 59

NKK-HUT

Các qui ước đặc biệt

Các bit của e bằng 0, các bit của m bằng 0, thì X = ± 0x000 0000 0000 0000 0000 0000 0000 0000 X = ± 0

Các bit của e bằng 1, các bit của m bằng 0, thì X = ± ∞x111 1111 1000 0000 0000 0000 0000 0000 X =± ∞

Các bit của e bằng 1, còn m có ít nhất một bit bằng 1, thìnó không biểu diễn cho số nào cả (NaN - not a number)

Bài giảng Kiến trúc Máy tính 60

NKK-HUT

Dải giá trị biểu diễn

2-127 đến 2+127

10-38 đến 10+38

Page 88: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 16

Bài giảng Kiến trúc Máy tính 61

NKK-HUT

Dạng 64-bit

S là bit dấue (11 bit): mã excess-1023 của phần mũ E E = e – 1023 m (52 bit): phần lẻ của phần định trị MGiá trị số thực:

X = (-1)S*1.m * 2e-1023

Dải giá trị biểu diễn: 10-308 đến 10+308

Bài giảng Kiến trúc Máy tính 62

NKK-HUT

Dạng 80-bit

S là bit dấue (15 bit): mã excess-16383 của phần mũ E E = e – 16383 m (64 bit): phần lẻ của phần định trị MGiá trị số thực:

X = (-1)S*1.m * 2e-16383

Dải giá trị biểu diễn: 10-4932 đến 10+4932

Bài giảng Kiến trúc Máy tính 63

NKK-HUT

3.Thực hiện phép toán số dấu phẩy động

X1 = M1 * RE1

X2 = M2 * RE2

Ta cóX1 * X2 = (M1* M2) * RE1+E2

X1 / X2 = (M1 / M2) * RE1-E2

X1 ± X2 = (M1*RE1-E2 ± M2) * RE2 , với E2 ≥ E1

Bài giảng Kiến trúc Máy tính 64

NKK-HUT

Các khả năng tràn sốTràn trên số mũ (Exponent Overflow): mũ dương vượt ra khỏi giá trị cực đại của số mũ dương có thể. ( ∞)Tràn dưới số mũ (Exponent Underflow): mũ âm vượt ra khỏi giá trị cực đại của số mũ âm có thể( 0). Tràn trên phần định trị (Mantissa Overflow): cộng hai phần định trị có cùng dấu, kết quả bịnhớ ra ngoài bit cao nhất.Tràn dưới phần định trị (Mantissa Underflow): Khi hiệu chỉnh phần định trị, các số bị mất ở bên phải phần định trị.

Page 89: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 17

Bài giảng Kiến trúc Máy tính 65

NKK-HUT

Phép cộng và phép trừ

Kiểm tra các số hạng có bằng 0 hay khôngHiệu chỉnh phần định trịCộng hoặc trừ phần định trịChuẩn hoá kết quả

Bài giảng Kiến trúc Máy tính 66

NKK-HUT

Thuật toán cộng/trừ số dấu phẩy động

Bài giảng Kiến trúc Máy tính 67

NKK-HUT

Thuật toán nhân số dấu phẩy động

Bài giảng Kiến trúc Máy tính 68

NKK-HUT

Thuật toán chia số dấu phẩy động

Page 90: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 18

Bài giảng Kiến trúc Máy tính 69

NKK-HUT

Hết chương 5

Bài giảng Kiến trúc Máy tính 70

NKK-HUT

Giải bài tậpX = -27.0625(10) = 11011.0001(2) = 1.10110001 x 24

Ta có:S = 1E = e-127 = 4 e = 127 + 4 = 131(10) = 1000 0011(2)

Vậy:X = 1100 0001 1101 1000 1000 0000 0000 0000

Y = 1/32(10) = 1.0 x 2-5

Ta có:S = 0E = e-127 = -5 e = 127 -5 = 12210) = 0111 1010(2)

Vậy:X = 0011 1101 0000 0000 0000 0000 0000 0000

Page 91: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 1

5 September 2009 Bài giảng Kiến trúc Máy tính 1

NKK-HUT

Kiến trúc máy tính

Chương 6BỘ XỬ LÝ TRUNG TÂM(Central Processing Unit - CPU)

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

5 September 2009 Bài giảng Kiến trúc máy tính 2

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

5 September 2009 Bài giảng Kiến trúc Máy tính 3

NKK-HUT

6.1. Tổ chức của CPU 6.2. Thiết kế đơn vị điều khiển6.3. Kỹ thuật đường ống lệnh6.4. Cấu trúc bộ xử lý tiên tiến6.5. Các kiến trúc song song mức lệnh6.6. Bộ xử lý đa luồng và đa lõi

Nội dung

5 September 2009 Bài giảng Kiến trúc Máy tính 4

NKK-HUT

6.1. Tổ chức của CPU

Nhiệm vụ của CPU:Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộnhớ. Giải mã lệnh (Decode Instruction): xác định thao tác mà lệnh yêu cầu.Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớhoặc các cổng vào-ra.Xử lý dữ liệu (Process Data): thực hiện phép toán sốhọc hay phép toán logic với các dữ liệu. Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay cổng vào-ra

1. Cấu trúc cơ bản của CPU

Page 92: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 2

5 September 2009 Bài giảng Kiến trúc Máy tính 5

NKK-HUT

Sơ đồ cấu trúc cơ bản của CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 6

NKK-HUT

Đơn vị điều khiển (Control Unit - CU)

Đơn vị số học và logic (Arithmetic and Logic Unit - ALU)

Tập thanh ghi (Register File - RF)

Đơn vị nối ghép bus (Bus Interface Unit -BIU)

Bus bên trong (Internal Bus)

Các thành phần cơ bản của CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 7

NKK-HUT

2. Đơn vị số học và logic

Chức năng: Thực hiện các phép toán số học và phép toán logic:

Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấuLogic: AND, OR, XOR, NOT, phép dịch bit.

5 September 2009 Bài giảng Kiến trúc Máy tính 8

NKK-HUT

Mô hình kết nối ALU

Page 93: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 3

5 September 2009 Bài giảng Kiến trúc Máy tính 9

NKK-HUT

3. Đơn vị điều khiển Chức năngĐiều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnhTăng nội dung của PC để trỏ sang lệnh kếtiếpGiải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầuPhát ra các tín hiệu điều khiển thực hiện lệnh Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó.

5 September 2009 Bài giảng Kiến trúc Máy tính 10

NKK-HUT

Mô hình kết nối đơn vị điều khiển

5 September 2009 Bài giảng Kiến trúc Máy tính 11

NKK-HUT

Các tín hiệu đưa đến đơn vị điều khiển

Clock: tín hiệu nhịp từ mạch tạo dao động bên ngoài.Mã lệnh từ thanh ghi lệnh đưa đến đểgiải mã.Các cờ từ thanh ghi cờ cho biết trạng thái của CPU.Các tín hiệu yêu cầu từ bus điều khiển

5 September 2009 Bài giảng Kiến trúc Máy tính 12

NKK-HUT

Các tín hiệu phát ra từ đơn vị điều khiển

Các tín hiệu điều khiển bên trong CPU:Điều khiển các thanh ghi Điều khiển ALU

Các tín hiệu điều khiển bên ngoài CPU:Điều khiển bộ nhớĐiều khiển các mô-đun vào-ra

Page 94: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 4

5 September 2009 Bài giảng Kiến trúc Máy tính 13

NKK-HUT

2. Hoạt động của chu trình lệnh

Chu trình lệnh

Nhận lệnhGiải mã lệnhNhận toán hạngThực hiện lệnhCất toán hạngNgắt

5 September 2009 Bài giảng Kiến trúc Máy tính 14

NKK-HUT

Giản đồ trạng thái chu trình lệnh

5 September 2009 Bài giảng Kiến trúc Máy tính 15

NKK-HUT

Nhận lệnh

CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trình PC ra bus địa chỉCPU phát tín hiệu điều khiển đọc bộ nhớLệnh từ bộ nhớ được đặt lên bus dữ liệu và được CPU copy vào thanh ghi lệnh IRCPU tăng nội dung PC để trỏ sang lệnh kế tiếp

5 September 2009 Bài giảng Kiến trúc Máy tính 16

NKK-HUT

Sơ đồ mô tả quá trình nhận lệnh

Page 95: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 5

5 September 2009 Bài giảng Kiến trúc Máy tính 17

NKK-HUT

Giải mã lệnh

Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển Đơn vị điều khiển tiến hành giải mã lệnh để xác định thao tác phải thực hiệnGiải mã lệnh xảy ra bên trong CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 18

NKK-HUT

Nhận dữ liệu

CPU đưa địa chỉ của toán hạng ra bus địa chỉCPU phát tín hiệu điều khiển đọc Toán hạng được đọc vào CPU Tương tự như nhận lệnh

5 September 2009 Bài giảng Kiến trúc Máy tính 19

NKK-HUT

Nhận dữ liệu gián tiếp

CPU đưa địa chỉ ra bus địa chỉCPU phát tín hiệu điều khiển đọcNội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ của toán hạngĐịa chỉ này được CPU phát ra bus địa chỉ để tìm ra toán hạngCPU phát tín hiệu điều khiển đọcToán hạng được đọc vào CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 20

NKK-HUT

Sơ đồ tả nhận toán hạng gián tiếp

Page 96: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 6

5 September 2009 Bài giảng Kiến trúc Máy tính 21

NKK-HUT

Thực hiện lệnh

Có nhiều dạng tuỳ thuộc vào lệnhCó thể là:Đọc/Ghi bộ nhớVào/RaChuyển giữa các thanh ghi Thao tác số học/logicChuyển điều khiển (rẽ nhánh)...

5 September 2009 Bài giảng Kiến trúc Máy tính 22

NKK-HUT

Ghi toán hạng

CPU đưa địa chỉ ra bus địa chỉCPU đưa dữ liệu cần ghi ra bus dữ liệu CPU phát tín hiệu điều khiển ghiDữ liệu trên bus dữ liệu được copy đến vị trí xác định

5 September 2009 Bài giảng Kiến trúc Máy tính 23

NKK-HUT

Sơ đồ mô tả quá trình ghi toán hạng

5 September 2009 Bài giảng Kiến trúc Máy tính 24

NKK-HUT

Ngắt

Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữliệu CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉCPU phát tín hiệu điều khiển ghi bộ nhớ Địa chỉ trở về trên bus dữ liệu được ghi ra vịtrí xác định (ở ngăn xếp) Địa chỉ lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào PC

Page 97: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 7

5 September 2009 Bài giảng Kiến trúc Máy tính 25

NKK-HUT

Sơ đồ mô tả chu trình ngắt

5 September 2009 Bài giảng Kiến trúc Máy tính 26

NKK-HUT

6.2. Thiết kế đơn vị điều khiển

Đơn vị điều khiển vi chương trình (Microprogrammed Control Unit)Đơn vị điều khiển nối kết cứng (Hardwired Control Unit)

5 September 2009 Bài giảng Kiến trúc Máy tính 27

NKK-HUT

Đơn vị điều khiển vi chương trình

5 September 2009 Bài giảng Kiến trúc Máy tính 28

NKK-HUT

Đơn vị điều khiển vi chương trình (tiếp)

Bộ nhớ vi chương trình (ROM) lưu trữcác vi chương trình (microprogram)Một vi chương trình bao gồm các vi lệnh (microinstruction)Mỗi vi lệnh mã hoá cho một vi thao tác (microoperation)Để hoàn thành một lệnh cần thực hiện một hoặc một vài vi chương trình Tốc độ chậm

Page 98: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 8

5 September 2009 Bài giảng Kiến trúc Máy tính 29

NKK-HUT

Đơn vị điều khiển nối kết cứng

5 September 2009 Bài giảng Kiến trúc Máy tính 30

NKK-HUT

Đơn vị điều khiển nối kết cứng (tiếp)

Sử dụng mạch cứng để giải mã và tạo các tín hiệu điều khiển thực hiện lệnhTốc độ nhanhĐơn vị điều khiển phức tạp

5 September 2009 Bài giảng Kiến trúc Máy tính 31

NKK-HUT 6.3. Kỹ thuật đường ống lệnh (Instruction Pipelining)

Chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp)Chẳng hạn có 6 công đoạn:

Nhận lệnh (Fetch Instruction - FI)Giải mã lệnh (Decode Instruction - DI)Tính địa chỉ toán hạng (Calculate Operand Address-CO)Nhận toán hạng (Fetch Operands - FO)Thực hiện lệnh (Execute Instruction - EI)Ghi toán hạng (Write Operands - WO)

5 September 2009 Bài giảng Kiến trúc Máy tính 32

NKK-HUT

Biểu đồ thời gian của đường ống lệnh

Page 99: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 9

5 September 2009 Bài giảng Kiến trúc Máy tính 33

NKK-HUT

Các Hazard (trở ngại) của đường ống lệnh

Hazard cấu trúc: do nhiều công đoạn dùng chung một tài nguyênHazard dữ liệu: lệnh sau sử dụng dữliệu kết quả của lệnh trước Hazard điều khiển: do rẽ nhánh gây ra

5 September 2009 Bài giảng Kiến trúc Máy tính 34

NKK-HUT

6.4. Cấu trúc chung của các bộ xử lý tiên tiến

5 September 2009 Bài giảng Kiến trúc Máy tính 35

NKK-HUT

Các đơn vị xử lý dữ liệu

Các đơn vị số nguyên Các đơn vị số dấu phẩy độngCác đơn vị chức năng đặc biệtĐơn vị xử lý dữ liệu âm thanhĐơn vị xử lý dữ liệu hình ảnhĐơn vị xử lý dữ liệu vector

5 September 2009 Bài giảng Kiến trúc Máy tính 36

NKK-HUT

Bộ nhớ cache

Được tích hợp trên chip vi xử lýBao gồm hai mức cache:

Cache L1 gồm hai phần tách rời:Cache lệnhCache dữ liệu giải quyết xung đột khi nhận lệnh và dữ liệu

Cache L2: chung cho lệnh và dữ liệu

Page 100: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 10

5 September 2009 Bài giảng Kiến trúc Máy tính 37

NKK-HUT

Đơn vị quản lý bộ nhớ

Chuyển đổi địa chỉ ảo thành địa chỉ vật lýCung cấp cơ chế phân trang/phân đoạnCung cấp chế độ bảo vệ bộ nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 38

NKK-HUT

6.5. Các kiến trúc song song mức lệnh

Siêu đường ống (Superpipeline & Hyperpipeline)Siêu vô hướng (Superscalar)VLIW (Very Long Instruction Word)

5 September 2009 Bài giảng Kiến trúc Máy tính 39

NKK-HUT

Superpipeline

5 September 2009 Bài giảng Kiến trúc Máy tính 40

NKK-HUT

Superscalar

Page 101: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 11

5 September 2009 Bài giảng Kiến trúc Máy tính 41

NKK-HUT

VLIW (Very Long Instruction Word)

5 September 2009 Bài giảng Kiến trúc Máy tính 42

NKK-HUT

6.6. Bộ xử lý đa lõi (multicores)

Thay đổi của bộxử lý:

Tuần tựPipelineSiêu vô hướngĐa luồngĐa lõi

5 September 2009 Bài giảng Kiến trúc Máy tính 43

NKK-HUT

Các dạng tổ chức bộ xử lý đa lõi

5 September 2009 Bài giảng Kiến trúc Máy tính 44

NKK-HUT

Intel - Core Duo (1)

2006Two x86 superscalar, shared L2 cacheDedicated L1 cache per core

32KB instruction and 32KB dataThermal control unit per core

Manages chip heat dissipationMaximize performance within constraintsImproved ergonomics

Advanced Programmable Interrupt Controlled (APIC)

Inter-process interrupts between coresRoutes interrupts to appropriate coreIncludes timer so OS can interrupt core

Page 102: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 12

5 September 2009 Bài giảng Kiến trúc Máy tính 45

NKK-HUT

Intel - Core Duo (2)

Power Management LogicMonitors thermal conditions and CPU activityAdjusts voltage and power consumptionCan switch individual logic subsystems

2MB shared L2 cacheDynamic allocationMESI support for L1 cachesExtended to support multiple Core Duo in SMP

L2 data shared between local cores or external

Bus interface

5 September 2009 Bài giảng Kiến trúc Máy tính 46

NKK-HUT

Intel Core Duo (3)

5 September 2009 Bài giảng Kiến trúc Máy tính 47

NKK-HUT

Intel x86 Multicore Organization - Core i7

November 2008Four x86 SMT processorsDedicated L2, shared L3 cacheSpeculative pre-fetch for cachesOn chip DDR3 memory controller

Three 8 byte channels (192 bits) giving 32GB/sNo front side bus

QuickPath InterconnectionCache coherent point-to-point linkHigh speed communications between processor chips6.4G transfers per second, 16 bits per transferDedicated bi-directional pairsTotal bandwidth 25.6GB/s

5 September 2009 Bài giảng Kiến trúc Máy tính 48

NKK-HUT

Intel Core i7

Page 103: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 13

5 September 2009 Bài giảng Kiến trúc Máy tính 49

NKK-HUTARM11 MPCore Block Diagram

5 September 2009 Bài giảng Kiến trúc Máy tính 50

NKK-HUT

Hết chương 6

Page 104: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 1

5 September 2009 Bài giảng Kiến trúc Máy tính 1

NKK-HUT

Kiến trúc máy tính

Chương 7BỘ NHỚ MÁY TÍNH

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

5 September 2009 Bài giảng Kiến trúc máy tính 2

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

5 September 2009 Bài giảng Kiến trúc Máy tính 3

NKK-HUT

7.1. Tổng quan về hệ thống nhớ7.2. Bộ nhớ bán dẫn7.3. Bộ nhớ chính7.4. Bộ nhớ cache7.5. Bộ nhớ ngoài7.6. Bộ nhớ ảo7.7. Hệ thống nhớ trên máy tính cá nhân

Nội dung của chương 7

5 September 2009 Bài giảng Kiến trúc Máy tính 4

NKK-HUT

7.1. Tổng quan về hệ thống nhớ

Vị tríBên trong CPU:

tập thanh ghi Bộ nhớ trong:

bộ nhớ chínhbộ nhớ cache

Bộ nhớ ngoài: các thiết bị nhớDung lượngĐộ dài từ nhớ (tính bằng bit)Số lượng từ nhớ

1. Các đặc trưng của hệ thống nhớ

Page 105: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 2

5 September 2009 Bài giảng Kiến trúc Máy tính 5

NKK-HUT

Các đặc trưng của hệ thống nhớ (tiếp)

Đơn vị truyềnTừ nhớKhối nhớ

Phương pháp truy nhậpTruy nhập tuần tự (băng từ)Truy nhập trực tiếp (các loại đĩa)Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)Truy nhập liên kết (cache)

5 September 2009 Bài giảng Kiến trúc Máy tính 6

NKK-HUT

Các đặc trưng của hệ thống nhớ (tiếp)

Hiệu năng (performance)Thời gian truy nhậpChu kỳ nhớTốc độ truyền

Kiểu vật lýBộ nhớ bán dẫnBộ nhớ từBộ nhớ quang

5 September 2009 Bài giảng Kiến trúc Máy tính 7

NKK-HUT

Các đặc trưng của hệ thống nhớ (tiếp)

Các đặc tính vật lýKhả biến / Không khả biến (volatile / nonvolatile)Xoá được / không xoá được

Tổ chức

5 September 2009 Bài giảng Kiến trúc Máy tính 8

NKK-HUT

2. Phân cấp hệ thống nhớ

Page 106: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 3

5 September 2009 Bài giảng Kiến trúc Máy tính 9

NKK-HUT

Ví dụ hệ thống nhớ thông dụng

Từ trái sang phải:dung lượng tăng dầntốc độ giảm dầngiá thành/1bit giảm dần

5 September 2009 Bài giảng Kiến trúc Máy tính 10

NKK-HUT

3. Phát hiện và hiệu chỉnh lỗi trong bộ nhớ

Nguyên tắc chung: cần tạo ra và lưu trữ thêm thông tin dư thừa.Từ dữ liệu cần ghi vào bộ nhớ: m bit Cần tạo ra và lưu trữ từ mã: k bit

Lưu trữ (m+k) bitKhi đọc ra có các khả năng sau:

Không phát hiện thấy dữ liệu lỗiPhát hiện thấy dữ liệu lỗi và có thể hiệu chỉnh dữliệu thành đúng Phát hiện thấy lỗi nhưng không có khả năng hiệu chỉnh cần phát ra tín hiệu báo lỗi.

5 September 2009 Bài giảng Kiến trúc Máy tính 11

NKK-HUT

Sơ đồ phát hiện và hiệu chỉnh lỗi

5 September 2009 Bài giảng Kiến trúc Máy tính 12

NKK-HUT

Ví dụ mã sửa lỗi Hamming (m=4, k=3)

Page 107: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 4

5 September 2009 Bài giảng Kiến trúc Máy tính 13

NKK-HUT

7.2. Bộ nhớ bán dẫn

Khả biếnBằng điệnbằng điện,mức từng byte

Bộ nhớ đọc-ghiRandom Access

Memory (RAM)

bằng điện,từng khối

Flash memory

bằng điện,mức từng byte

Electrically ErasablePROM (EEPROM)

bằng tia cực tím, cả chipBộ nhớ

hầu nhưchỉ đọc

Erasable PROM(EPROM)

Bằng điện

Programmable ROM (PROM)

Không khả biến

Mặt nạKhông xoá

đượcBộ nhớchỉ đọc

Read Only Memory(ROM)

Tính khả biến

Cơ chế ghiKhả năng xoáTiêuchuẩn

Kiểu bộ nhớ

1. Phân loại

5 September 2009 Bài giảng Kiến trúc Máy tính 14

NKK-HUT

ROM (Read Only Memory)

Bộ nhớ không khả biến Lưu trữ các thông tin sau:

Thư viện các chương trình conCác chương trình điều khiển hệ thống (BIOS)Các bảng chức năngVi chương trình

5 September 2009 Bài giảng Kiến trúc Máy tính 15

NKK-HUT

Các kiểu ROM

ROM mặt nạ: thông tin được ghi khi sản xuất rất đắt

PROM (Programmable ROM)Cần thiết bị chuyên dụng để ghi bằng chương trình chỉ ghi được một lần

EPROM (Erasable PROM)Cần thiết bị chuyên dụng để ghi bằng chương trình ghi được nhiều lầnTrước khi ghi lại, xóa bằng tia cực tím

5 September 2009 Bài giảng Kiến trúc Máy tính 16

NKK-HUT

Các kiểu ROM (tiếp)

EEPROM (Electrically Erasable PROM)Có thể ghi theo từng byteXóa bằng điện

Flash memory (Bộ nhớ cực nhanh)Ghi theo khốiXóa bằng điện

Page 108: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 5

5 September 2009 Bài giảng Kiến trúc Máy tính 17

NKK-HUT

RAM (Random Access Memory)

Bộ nhớ đọc-ghi (Read/Write Memory)Khả biếnLưu trữ thông tin tạm thờiCó hai loại: SRAM và DRAM

(Static and Dynamic)

5 September 2009 Bài giảng Kiến trúc Máy tính 18

NKK-HUT

SRAM (Static) – RAM tĩnh

Các bit được lưu trữ bằng các Flip-Flop thông tin ổn định

Cấu trúc phức tạp Dung lượng chip nhỏTốc độ nhanhĐắt tiền Dùng làm bộ nhớ cache

5 September 2009 Bài giảng Kiến trúc Máy tính 19

NKK-HUT

DRAM (Dynamic) – RAM động

Các bit được lưu trữ trên tụ điện cần phải có mạch làm tươi

Cấu trúc đơn giản Dung lượng lớnTốc độ chậm hơn Rẻ tiền hơnDùng làm bộ nhớ chính

5 September 2009 Bài giảng Kiến trúc Máy tính 20

NKK-HUT

Các DRAM tiên tiến

Enhanced DRAMCache DRAMSynchronous DRAM (SDRAM): làm việc được đồng bộ bởi xung clockDDR-SDRAM (Double Data Rate SDRAM)Rambus DRAM (RDRAM)

Page 109: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 6

5 September 2009 Bài giảng Kiến trúc Máy tính 21

NKK-HUT

2. Tổ chức của chip nhớSơ đồ cơ bản của chip nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 22

NKK-HUT

Các tín hiệu của chip nhớ

Các đường địa chỉ: An-1 ÷ A0 có 2n từ nhớCác đường dữ liệu: Dm-1 ÷ D0 độ dài từnhớ = m bitDung lượng chip nhớ = 2n x m bitCác đường điều khiển:

Tín hiệu chọn chip CS (Chip Select)Tín hiệu điều khiển đọc OE (Output Enable) Tín hiệu điều khiển ghi WE (Write Enable)

(Các tín hiệu điều khiển thường tích cực với mức 0)

5 September 2009 Bài giảng Kiến trúc Máy tính 23

NKK-HUT

Tổ chức bộ nhớ một chiều

5 September 2009 Bài giảng Kiến trúc Máy tính 24

NKK-HUT

Tổ chức bộ nhớ hai chiều

Page 110: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 7

5 September 2009 Bài giảng Kiến trúc Máy tính 25

NKK-HUT

Tổ chức bộ nhớ hai chiều

Có n đường địa chỉ: n = n1 + n2 2n1 hàng, mỗi hàng có 2n2 từ nhớ,

Có m đường dữ liệu: mỗi từ nhớ có độ dài m-bit.

Dung lượng của chip nhớ: [2n1 x (2n2 x m)] bit = (2n1+n2 x m) bit = (2n x m) bit.

Hoạt động giải mã địa chỉ:Bước 1: bộ giải mã hàng chọn 1 trong 2n1 hàng. Bước 2: bộ giải mã cột chọn 1 trong 2n2 từ nhớ(cột) của hàng đã được chọn.

5 September 2009 Bài giảng Kiến trúc Máy tính 26

NKK-HUT

Tổ chức của DRAM

5 September 2009 Bài giảng Kiến trúc Máy tính 27

NKK-HUT

Tổ chức của DRAM

Dùng n đường địa chỉ dồn kênh cho phép truyền 2n bit địa chỉTín hiệu chọn địa chỉ hàng RAS (Row Address Select)Tín hiệu chọn địa chỉ cột CAS (Column Address Select)Dung lượng của DRAM= 22n x m bit

5 September 2009 Bài giảng Kiến trúc Máy tính 28

NKK-HUT

Chip nhớ

Page 111: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 8

5 September 2009 Bài giảng Kiến trúc Máy tính 29

NKK-HUT

3. Thiết kế mô-đun nhớ bán dẫn

Dung lượng chip nhớ 2n x m bitCần thiết kế để tăng dung lượng:

Thiết kế tăng độ dài từ nhớThiết kế tăng số lượng từ nhớThiết kế kết hợp

5 September 2009 Bài giảng Kiến trúc Máy tính 30

NKK-HUT

Tăng độ dài từ nhớ

VD1: Cho chip nhớ SRAM 4K x 4 bitThiết kế mô-đun nhớ 4K x 8 bit

Giải:Dung lượng chip nhớ = 212 x 4 bitchip nhớ có:

12 chân địa chỉ4 chân dữ liệu

mô-đun nhớ cần có:12 chân địa chỉ8 chân dữ liệu

5 September 2009 Bài giảng Kiến trúc Máy tính 31

NKK-HUT

Ví dụ tăng độ dài từ nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 32

NKK-HUT

Bài toán tăng độ dài từ nhớ tổng quát

Cho chip nhớ 2n x mbitThiết kế mô-đun nhớ 2n x (k.m) bitDùng k chip nhớ

Page 112: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 9

5 September 2009 Bài giảng Kiến trúc Máy tính 33

NKK-HUT

Tăng số lượng từ nhớ

VD2:Cho chip nhớ SRAM 4K x 8 bitThiết kế mô-đun nhớ 8K x 8 bit

Giải:Dung lượng chip nhớ = 212 x 8 bitchip nhớ có:

12 chân địa chỉ8 chân dữ liệu

Dung lượng mô-đun nhớ = 213 x 8 bit13 chân địa chỉ8 chân dữ liệu

5 September 2009 Bài giảng Kiến trúc Máy tính 34

NKK-HUT

Tăng số lượng từ nhớ

11x101101000

Y1Y0AG

5 September 2009 Bài giảng Kiến trúc Máy tính 35

NKK-HUT

Bài tập

1. Tăng số lượng từ gấp 4 lần:Cho chip nhớ SRAM 4K x 8 bitThiết kế mô-đun nhớ 16K x 8 bit

2. Tăng số lượng từ gấp 8 lần:Cho chip nhớ SRAM 4K x 8 bitThiết kế mô-đun nhớ 32K x 8 bit

3. Thiết kế kết hợp:Cho chip nhớ SRAM 4K x 4 bitThiết kế mô-đun nhớ 8K x 8 bit

5 September 2009 Bài giảng Kiến trúc Máy tính 36

NKK-HUT

Bộ giải mã 2 4

1110000

1101100

1

1

1

Y0

1

1

1

Y1

x

1

1

B

11x1

0110

1000

Y3Y2AG

Page 113: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 10

5 September 2009 Bài giảng Kiến trúc Máy tính 37

NKK-HUT

7.3. Bộ nhớ chính

1. Các đặc trưng cơ bảnChứa các chương trình đang thực hiện và các dữ liệu đang được sử dụngTồn tại trên mọi hệ thống máy tính Bao gồm các ngăn nhớ được đánh địa chỉ trực tiếp bởi CPUDung lượng của bộ nhớ chính nhỏ hơn không gian địa chỉ bộ nhớ mà CPU quản lý.Việc quản lý logic bộ nhớ chính tuỳ thuộc vào hệ điều hành

5 September 2009 Bài giảng Kiến trúc Máy tính 38

NKK-HUT

2. Tổ chức bộ nhớ đan xen (interleaved memory)

Độ rộng của bus dữ liệu để trao đổi với bộ nhớ: m = 8, 16, 32, 64,128 ... bit Các ngăn nhớ được tổ chức theo bytetổ chức bộ nhớ vật lý khác nhau

5 September 2009 Bài giảng Kiến trúc Máy tính 39

NKK-HUT

m=8bit một băng nhớ tuyến tính

5 September 2009 Bài giảng Kiến trúc Máy tính 40

NKK-HUT

m = 16bit hai băng nhớ đan xen

Page 114: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 11

5 September 2009 Bài giảng Kiến trúc Máy tính 41

NKK-HUT

m = 32bit bốn băng nhớ đan xen

5 September 2009 Bài giảng Kiến trúc Máy tính 42

NKK-HUT

m = 64bit tám băng nhớ đan xen

5 September 2009 Bài giảng Kiến trúc Máy tính 43

NKK-HUT

7.4. Bộ nhớ đệm nhanh (cache memory)

1. Nguyên tắc chung của cacheNguyên lý cục bộ hoá tham chiếu bộnhớ: Trong một khoảng thời gian đủ nhỏ CPU thường chỉ tham chiếu các thông tin trong một khối nhớ cục bộVí dụ:

Cấu trúc chương trình tuần tựVòng lặp có thân nhỏCấu trúc dữ liệu mảng

5 September 2009 Bài giảng Kiến trúc Máy tính 44

NKK-HUT

Nguyên tắc chung của cache (tiếp)

Cache có tốc độ nhanh hơn bộ nhớ chínhCache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy cập bộ nhớCache có thể được đặt trên chip CPU

Page 115: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 12

5 September 2009 Bài giảng Kiến trúc Máy tính 45

NKK-HUT

Ví dụ về thao tác của cache

CPU yêu cầu nội dung của ngăn nhớCPU kiểm tra trên cache với dữ liệu nàyNếu có, CPU nhận dữ liệu từ cache(nhanh)Nếu không có, đọc Block nhớ chứa dữliệu từ bộ nhớ chính vào cacheTiếp đó chuyển dữ liệu từ cache vào CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 46

NKK-HUT

Cấu trúc chung của cache / bộ nhớ chính

5 September 2009 Bài giảng Kiến trúc Máy tính 47

NKK-HUT

Cấu trúc chung của cache / bộ nhớ chính (tiếp)

Bộ nhớ chính có 2N byte nhớBộ nhớ chính và cache được chia thành các khối có kích thước bằng nhau

Bộ nhớ chính: B0, B1, B2, ... , Bp-1 (p Blocks)Bộ nhớ cache: L0, L1, L2, ... , Lm-1 (m Lines)Kích thước của Block = 8,16,32,64,128 byte

5 September 2009 Bài giảng Kiến trúc Máy tính 48

NKK-HUT

Cấu trúc chung của cache / bộ nhớ chính (tiếp)

Một số Block của bộ nhớ chính được nạp vào các Line của cache. Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ nhớ chính hiện đang được chứa ở Line đó. Khi CPU truy nhập (đọc/ghi) một từ nhớ, có hai khả năng xảy ra:

Từ nhớ đó có trong cache (cache hit)Từ nhớ đó không có trong cache (cache miss).

Page 116: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 13

5 September 2009 Bài giảng Kiến trúc Máy tính 49

NKK-HUT

2. Các phương pháp ánh xạ

(Chính là các phương pháp tổ chức bộnhớ cache)Ánh xạ trực tiếp

(Direct mapping)Ánh xạ liên kết toàn phần

(Fully associative mapping)Ánh xạ liên kết tập hợp

(Set associative mapping)

5 September 2009 Bài giảng Kiến trúc Máy tính 50

NKK-HUT

Ánh xạ trực tiếpMỗi Block của bộ nhớ chính chỉ có thể được nạp vào một Line của cache:

B0 L0

B1 L1

....Bm-1 Lm-1

Bm L0

Bm+1 L1

....Tổng quát

Bj chỉ có thể nạp vào L j mod m

m là số Line của cache.

5 September 2009 Bài giảng Kiến trúc Máy tính 51

NKK-HUT

Minh hoạ ánh xạ trực tiếp

5 September 2009 Bài giảng Kiến trúc Máy tính 52

NKK-HUT

Đặc điểm của ánh xạ trực tiếp

Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường:

Trường Word gồm W bit xác định một từ nhớtrong Block hay Line:

2W = kích thước của Block hay LineTrường Line gồm L bit xác định một trong số các Line trong cache:

2L = số Line trong cache = mTrường Tag gồm T bit:

T = N - (W+L)Bộ so sánh đơn giảnXác suất cache hit thấp

Page 117: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 14

5 September 2009 Bài giảng Kiến trúc Máy tính 53

NKK-HUT

Ánh xạ liên kết toàn phần

Mỗi Block có thể nạp vào bất kỳ Linenào của cache. Địa chỉ của bộ nhớ chính bao gồm hai trường:

Trường Word giống như trường hợp ở trên.Trường Tag dùng để xác định Block của bộ nhớ chính.

Tag xác định Block đang nằm ở Line đó

5 September 2009 Bài giảng Kiến trúc Máy tính 54

NKK-HUT

Minh hoạ ánh xạ liên kết toàn phần

5 September 2009 Bài giảng Kiến trúc Máy tính 55

NKK-HUT

Đặc điểm của ánh xạ liên kết toàn phần

So sánh đồng thời với tất cả các Tag mất nhiều thời gianXác suất cache hit cao. Bộ so sánh phức tạp.

5 September 2009 Bài giảng Kiến trúc Máy tính 56

NKK-HUT

Ánh xạ liên kết tập hợp

Cache đươc chia thành các Tập (Set)Mỗi một Set chứa một số LineVí dụ:

4 Line/Set 4-way associative mappingÁnh xạ theo nguyên tắc sau:

B0 S0

B1 S1

B2 S2.......

Page 118: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 15

5 September 2009 Bài giảng Kiến trúc Máy tính 57

NKK-HUT

Minh hoạ ánh xạ liên kết tập hợp

5 September 2009 Bài giảng Kiến trúc Máy tính 58

NKK-HUT

Đặc điểm của ánh xạ liên kết tập hợp

Kích thước Block = 2W WordTrường Set có S bit dùng để xác định một trong số V = 2S SetTrường Tag có T bit: T = N - (W+S) Tổng quát cho cả hai phương pháp trênThông thường 2,4,8,16Lines/Set

5 September 2009 Bài giảng Kiến trúc Máy tính 59

NKK-HUT

Ví dụ về ánh xạ địa chỉ

Không gian địa chỉ bộ nhớ chính = 4GBDung lượng bộ nhớ cache là 256KBKích thước Line (Block) = 32byte. Xác định số bit của các trường địa chỉ cho ba trường hợp tổ chức:

Ánh xạ trực tiếpÁnh xạ liên kết toàn phầnÁnh xạ liên kết tập hợp 4 đường

5 September 2009 Bài giảng Kiến trúc Máy tính 60

NKK-HUT

Với ánh xạ trực tiếp

Bộ nhớ chính = 4GB = 232 byte N = 32 bitCache = 256 KB = 218 byte.Line = 32 byte = 25 byte W = 5 bitSố Line trong cache = 218/ 25 = 213 Line

L = 13 bitT = 32 - (13 + 5) = 14 bit

Page 119: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 16

5 September 2009 Bài giảng Kiến trúc Máy tính 61

NKK-HUT

Với ánh xạ liên kết toàn phần

Bộ nhớ chính = 4GB = 232 byte N = 32 bitLine = 32 byte = 25 byte W = 5 bitSố bit của trường Tag sẽ là: T = 32 - 5 = 27 bit

5 September 2009 Bài giảng Kiến trúc Máy tính 62

NKK-HUT

Với ánh xạ liên kết tập hợp 4 đường

Bộ nhớ chính = 4GB = 232 byte N = 32 bitLine = 32 byte = 25 byte W = 5 bitSố Line trong cache = 218/ 25 = 213 LineMột Set có 4 Line = 22 Linesố Set trong cache = 213/ 22 = 211 Set

S = 11 bitSố bit của trường Tag sẽ là: T = 32 - (11 + 5) = 16 bit

5 September 2009 Bài giảng Kiến trúc Máy tính 63

NKK-HUT

Bài tập

Giả thiết rằng máy tính có 128KB cache tổchức theo kiểu ánh xạ liên kết tập hợp 4-line. Cache có tất cả là 1024 Set từ S0 đến S1023. Địa chỉ bộ nhớ chính là 32-bit và đánh địa chỉ cho từng byte. a) Tính số bit cho các trường địa chỉ khi truy nhập cache ?b) Xác định byte nhớ có địa chỉ 003D02AF(16) được ánh xạ vào Set nào của cache ?

5 September 2009 Bài giảng Kiến trúc Máy tính 64

NKK-HUT

3. Thuật giải thay thế (1): Ánh xạ trực tiếp

Không phải lựa chọnMỗi Block chỉ ánh xạ vào một Line xác địnhThay thế Block ở Line đó

Page 120: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 17

5 September 2009 Bài giảng Kiến trúc Máy tính 65

NKK-HUT

Thuật giải thay thế (2): Ánh xạ liên kết

Được thực hiện bằng phần cứng (nhanh) Random: Thay thế ngẫu nhiênFIFO (First In First Out): Thay thế Block nào nằm lâu nhất ở trong Set đóLFU (Least Frequently Used): Thay thế Blocknào trong Set có số lần truy nhập ít nhất trong cùng một khoảng thời gian LRU (Least Recently Used): Thay thế Block ởtrong Set tương ứng có thời gian lâu nhất không được tham chiếu tới. Tối ưu nhất: LRU

5 September 2009 Bài giảng Kiến trúc Máy tính 66

NKK-HUT

4. Phương pháp ghi dữ liệu khi cache hit

Ghi xuyên qua (Write-through): ghi cả cache và cả bộ nhớ chínhtốc độ chậm

Ghi trả sau (Write-back): chỉ ghi ra cachetốc độ nhanhkhi Block trong cache bị thay thế cần phải ghi trả cả Block về bộ nhớ chính

5 September 2009 Bài giảng Kiến trúc Máy tính 67

NKK-HUT

5. Cache trên các bộ xử lý Intel

80486: 8KB cache L1 trên chipPentium: có hai cache L1 trên chip

Cache lệnh = 8KBCache dữ liệu = 8KB

Pentium 4 (2000): hai mức cache L1 và L2 trên chip

Cache L1:mỗi cache 8KBKích thước Line = 64 byteánh xạ liên kết tập hợp 4 đường

cache L2256KBKích thước Line = 128 byte ánh xạ liên kết tập hợp 8 đường

5 September 2009 Bài giảng Kiến trúc Máy tính 68

NKK-HUT

Sơ đồ Pentium 4

Page 121: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 18

5 September 2009 Bài giảng Kiến trúc Máy tính 69

NKK-HUT

PowerPC G4 (dùng cho Power Mac)

5 September 2009 Bài giảng Kiến trúc Máy tính 70

NKK-HUT

7.5. Bộ nhớ ngoài

1. Các kiểu bộ nhớ ngoàiBăng từ Đĩa từĐĩa quangFlash Disk

5 September 2009 Bài giảng Kiến trúc Máy tính 71

NKK-HUT

2. Đĩa từ

5 September 2009 Bài giảng Kiến trúc Máy tính 72

NKK-HUT

Các đặc tính đĩa từ

Đầu từ cố định hay đầu từ di độngĐĩa cố định hay thay đổiMột mặt hay hai mặtMột đĩa hay nhiều đĩaCơ chế đầu từ

Tiếp xúc (đĩa mềm)Không tiếp xúc

Page 122: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 19

5 September 2009 Bài giảng Kiến trúc Máy tính 73

NKK-HUT

Nhiều đĩa

5 September 2009 Bài giảng Kiến trúc Máy tính 74

NKK-HUT

Cylinders

5 September 2009 Bài giảng Kiến trúc Máy tính 75

NKK-HUT

Đĩa mềm

8”, 5.25”, 3.5”Dung lượng nhỏ: chỉ tới 1.44MbyteTốc độ chậmHiện nay không sản xuất nữa

5 September 2009 Bài giảng Kiến trúc Máy tính 76

NKK-HUT

Đĩa cứng

Một hoặc nhiều đĩaThông dụngDung lượng tăng lên rất nhanh

1993: 200MB2003: 30GB, 40GB2009: 160GB, 320GB

Tốc độ đọc/ghi nhanhRẻ tiền

Page 123: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 20

5 September 2009 Bài giảng Kiến trúc Máy tính 77

NKK-HUT

RAID

Redundant Array of Inexpensive DisksRedundant Array of Independent Disks Hệ thống nhớ dung lượng lớn

5 September 2009 Bài giảng Kiến trúc Máy tính 78

NKK-HUT

Đặc điểm của RAID

Tập các đĩa cứng vật lý được OS coi như một ổ logic duy nhất dung lượng lớnDữ liệu được lưu trữ phân tán trên các ổ đĩa vật lý truy cập song song (nhanh)Có thể sử dụng dung lượng dư thừa để lưu trữ các thông tin kiểm tra chẵn lẻ, cho phép khôi phục lại thông tin trong trường hợp đĩa bị hỏng an toàn thông tin7 loại phổ biến (RAID 0 – 6)

5 September 2009 Bài giảng Kiến trúc Máy tính 79

NKK-HUT

RAID 0, 1, 2

5 September 2009 Bài giảng Kiến trúc Máy tính 80

NKK-HUT

RAID 3 & 4

Page 124: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 21

5 September 2009 Bài giảng Kiến trúc Máy tính 81

NKK-HUT

RAID 5 & 6

5 September 2009 Bài giảng Kiến trúc Máy tính 82

NKK-HUT

Ánh xạ dữ liệu của RAID 0

5 September 2009 Bài giảng Kiến trúc Máy tính 83

NKK-HUT

3. Đĩa quang CD-ROM (Compact Disk ROM)CD-R (Recordable CD)CD-RW (Rewriteable CD)Dung lượng thông dụng 650MBỔ đĩa CD:

Ổ CD-ROMỔ CD-Writer: Ghi một phiên hoặc ghi nhiều phiênỔ CD-RW

Tốc độ đọc cơ sở 150KByte/s. Tốc độ bội, ví dụ: 48x, 52x,...

5 September 2009 Bài giảng Kiến trúc Máy tính 84

NKK-HUT

3. Đĩa quang (tiếp)

DVD Digital Video Disk: chỉ dùng trên ổ đĩa xem videoDigital Versatile Disk: ổ trên máy tínhGhi một hoặc hai mặtMột hoặc hai lớp trên một mặtThông dụng: 4,7GB/lớp

Page 125: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 22

5 September 2009 Bài giảng Kiến trúc Máy tính 85

NKK-HUT

4. Flash Disk

Thường kết nối qua cổng USBKhông phải dạng đĩaBộ nhớ bán dẫn cực nhanh (flash memory)Dung lượng tăng nhanhThuận tiện

5 September 2009 Bài giảng Kiến trúc Máy tính 86

NKK-HUT

7.6. Bộ nhớ ảo (Virtual Memory)

Khái niệm bộ nhớ ảo: gồm bộ nhớchính và bộ nhớ ngoài mà được CPU coi như là một bộ nhớ duy nhất (bộ nhớchính).Các kỹ thuật thực hiện bộ nhớ ảo:

Kỹ thuật phân trang: Chia không gian địa chỉ bộ nhớ thành các trang nhớ có kích thước bằng nhau và nằm liền kề nhauThông dụng: kích thước trang = 4KBytesKỹ thuật phân đoạn: Chia không gian nhớthành các đoạn nhớ có kích thước thay đổi, các đoạn nhớ có thể gối lên nhau.

5 September 2009 Bài giảng Kiến trúc Máy tính 87

NKK-HUT

Phân trang

Phân chia bộ nhớ thành các phần có kích thước bằng nhau gọi là các khung trang Chia chương trình (tiến trình) thành các trangCấp phát số hiệu khung trang yêu cầu cho tiến trìnhHĐH duy trì danh sách các khung trang nhớtrốngTiến trình không yêu cầu các khung trang liên tiếpSử dụng bảng trang để quản lý

5 September 2009 Bài giảng Kiến trúc Máy tính 88

NKK-HUT

Cấp phát các khung trang

Page 126: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 23

5 September 2009 Bài giảng Kiến trúc Máy tính 89

NKK-HUT

Địa chỉ logic và địa chỉ vật lý của phân trang

5 September 2009 Bài giảng Kiến trúc Máy tính 90

NKK-HUT

Nguyên tắc làm việc của bộ nhớ ảo phân trang

Phân trang theo yêu cầuKhông yêu cầu tất cả các trang của tiến trình nằm trong bộ nhớChỉ nạp vào bộ nhớ những trang được yêu cầu

Lỗi trangTrang được yêu cầu không có trong bộ nhớ HĐH cần hoán đổi trang yêu cầu vàoCó thể cần hoán đổi một trang nào đó ra để lấy chỗCần chọn trang để đưa ra

5 September 2009 Bài giảng Kiến trúc Máy tính 91

NKK-HUT

Thất bại

Quá nhiều tiến trình trong bộ nhớ quá nhỏHĐH tiêu tốn toàn bộ thời gian cho việc hoán đổi Có ít hoặc không có công việc nào được thực hiệnĐĩa luôn luôn sángGiải pháp:

Thuật toán thay trangGiảm bớt số tiến trình đang chạyThêm bộ nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 92

NKK-HUT

Lợi ích

Không cần toàn bộ tiến trình nằm trong bộ nhớ để chạy Có thể hoán đổi trang được yêu cầuNhư vậy có thể chạy những tiến trình lớn hơn tổng bộ nhớ sẵn dùngBộ nhớ chính được gọi là bộ nhớ thựcNgười dùng cảm giác bộ nhớ lớn hơn bộ nhớ thực

Page 127: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 24

5 September 2009 Bài giảng Kiến trúc Máy tính 93

NKK-HUT

Cấu trúc bảng trang

5 September 2009 Bài giảng Kiến trúc Máy tính 94

NKK-HUT

Translation Lookaside Buffer

Mỗi tham chiếu bộ nhớ ảo gây ra hai truy cập bộ nhớ vật lý

Tìm điểm vào của bảng trangTìm dữ liệu

Sử dụng cache đặc biệt cho bảng trangTLB

5 September 2009 Bài giảng Kiến trúc Máy tính 95

NKK-HUT

Hoạt động của TLB

5 September 2009 Bài giảng Kiến trúc Máy tính 96

NKK-HUT

Hoạt động của TLB và Cache

Page 128: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 25

5 September 2009 Bài giảng Kiến trúc Máy tính 97

NKK-HUT

7.7. Hệ thống nhớ trên PC hiện nay

Bộ nhớ cache: tích hợp trên chip vi xử lýBộ nhớ chính: Tồn tại dưới dạng các mô-đun nhớ RAM

SIMM – Single Inline Memory Module30 chân: 8 đường dữ liệu 72 chân: 32 đường dữ liệu

DIMM – Dual Inline Memory Module64 đường dữ liệu

RIMM – Rambus DRAM

5 September 2009 Bài giảng Kiến trúc Máy tính 98

NKK-HUT

Hệ thống nhớ trên PC (tiếp)

ROM BIOS chứa các chương trình sau:Chương trình POST (Power On Self Test)Chương trình CMOS SetupChương trình Bootstrap loaderCác trình điều khiển vào-ra cơ bản (BIOS)

CMOS RAM:Chứa thông tin cấu hình hệ thống Đồng hồ hệ thống Có pin nuôi riêng

Video RAM: quản lý thông tin của màn hình Các loại bộ nhớ ngoài

5 September 2009 Bài giảng Kiến trúc Máy tính 99

NKK-HUT

Hết chương 7

Page 129: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 1

5 September 2009 Bài giảng Kiến trúc Máy tính 1

NKK-HUT

Kiến trúc máy tính

Chương 8HỆ THỐNG VÀO-RA

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

5 September 2009 Bài giảng Kiến trúc máy tính 2

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

5 September 2009 Bài giảng Kiến trúc Máy tính 3

NKK-HUT

8.1. Tổng quan về hệ thống vào-ra 8.2. Các phương pháp điều khiển vào-ra 8.3. Nối ghép thiết bị ngoại vi 8.4. Các cổng vào-ra thông dụng trên PC

Nội dung của chương 8

5 September 2009 Bài giảng Kiến trúc Máy tính 4

NKK-HUT

8.1. Tổng quan về hệ thống vào-ra

1. Giới thiệu chungChức năng của hệ thống vào-ra: Trao đổi thông tin giữa máy tính với thế giới bên ngoàiCác thao tác cơ bản:

Vào dữ liệu (Input) Ra dữ liệu (Output)

Các thành phần chính:Các thiết bị ngoại viCác mô-đun vào-ra

Page 130: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 2

5 September 2009 Bài giảng Kiến trúc Máy tính 5

NKK-HUT

Cấu trúc cơ bản của hệ thống vào-ra

5 September 2009 Bài giảng Kiến trúc Máy tính 6

NKK-HUT

Đặc điểm của vào-ra

Tồn tại đa dạng các thiết bị ngoại vi khác nhau về:

Nguyên tắc hoạt động Tốc độKhuôn dạng dữ liệu

Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAMCần có các mô-đun vào-ra để nối ghép

các thiết bị ngoại vi với CPU và bộ nhớchính

5 September 2009 Bài giảng Kiến trúc Máy tính 7

NKK-HUT

2. Các thiết bị ngoại vi

Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tínhPhân loại:

Thiết bị ngoại vi giao tiếp người-máy: Bàn phím, Màn hình, Máy in,...Thiết bị ngoại vi giao tiếp máy-máy: gồm các thiết bị theo dõi và kiểm traThiết bị ngoại vi truyền thông: Modem, Network Interface Card (NIC)

5 September 2009 Bài giảng Kiến trúc Máy tính 8

NKK-HUT

Một số thiết bị ngoại vi

Ubiquitous1000s-109sCable, DSL, ATMModem, fax, LANNetwork

Ubiquitous106sCD, tape, archiveHard/floppy diskMass storage

Main usesData rate (b/s)Other examplesPrime examplesTwo-way I/OEntertainment1000s-109sFilm/video recorderMonitor, TV screenVideo

Ubiquitous1000sPlotter, microfilmMonitor, printerImage

Ubiquitous1000sVoice synthesizerSpeaker, audiotapeAudio

Personal assistance100sScent, brain stimulusBraille textSensory

Safety, securityA fewFlashing lightBuzzer, bell, sirenWarningUbiquitous100sRobotic motionStepper motorPosition

Ubiquitous10sLED, status lightLCD line segmentsSymbol

Main usesData rate (b/s)Other examplesPrime examplesOutput typeEntertainment1000s-109sVCR, TV cableCamcorder, DVDVideo

Photos, publishing1000s-106sGraphic tabletScanner, cameraImageUbiquitous1000sPhone, radio, tapeMicrophoneAudio

Control, security100sScent, brain signalTouch, motion, lightSensory

Sales, security100sBadge, fingerprintBarcode readerIdentity

Ubiquitous100sStick, wheel, gloveMouse, touchpadPosition

Ubiquitous10sMusic note, OCRKeyboard, keypadSymbol

Main usesData rate (b/s)Other examplesPrime examplesInput type

Page 131: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 3

5 September 2009 Bài giảng Kiến trúc Máy tính 9

NKK-HUT

Cấu trúc chung của thiết bị ngoại vi

5 September 2009 Bài giảng Kiến trúc Máy tính 10

NKK-HUT

Các thành phần của thiết bị ngoại vi

Bộ chuyển đổi tín hiệu: chuyển đổi dữliệu giữa bên ngoài và bên trong máy tính Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun vào-ra và thiết bị ngoại viKhối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu cầu từ mô-đun vào-ra

5 September 2009 Bài giảng Kiến trúc Máy tính 11

NKK-HUT

3. Mô-đun vào-ra

Chức năng của mô-đun vào-ra:Điều khiển và định thời Trao đổi thông tin với CPU hoặc bộ nhớchínhTrao đổi thông tin với thiết bị ngoại viĐệm giữa bên trong máy tính với thiết bịngoại viPhát hiện lỗi của thiết bị ngoại vi

5 September 2009 Bài giảng Kiến trúc Máy tính 12

NKK-HUT

Cấu trúc chung của mô-đun vào-ra

Page 132: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 4

5 September 2009 Bài giảng Kiến trúc Máy tính 13

NKK-HUT

Các thành phần của mô-đun vào-ra

Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi Các cổng vào-ra (I/O Port): kết nối với thiết bị ngoại vi, mỗi cổng có một địa chỉxác định Thanh ghi trạng thái/điều khiển: lưu giữthông tin trạng thái/điều khiển cho các cổng vào-ra Khối logic điều khiển: điều khiển mô-đun vào-ra

5 September 2009 Bài giảng Kiến trúc Máy tính 14

NKK-HUT

4. Địa chỉ hóa cổng vào-raa. Không gian địa chỉ của bộ xử lý

5 September 2009 Bài giảng Kiến trúc Máy tính 15

NKK-HUT

Không gian địa chỉ của bộ xử lý (tiếp)

Một số bộ xử lý chỉ quản lý duy nhất một không gian địa chỉ:

không gian địa chỉ bộ nhớ: 2N địa chỉVí dụ: Các bộ xử lý 680x0 (Motorola)

5 September 2009 Bài giảng Kiến trúc Máy tính 16

NKK-HUT

Không gian địa chỉ của bộ xử lý (tiếp)

Một số bộ xử lý quản lý hai không gian địa chỉtách biệt:

Không gian địa chỉ bộ nhớ: 2N địa chỉ Không gian địa chỉ vào-ra: 2N1 địa chỉCó tín hiệu điều khiển phân biệt truy nhập không gian địa chỉTập lệnh có các lệnh vào-ra chuyên dụng

Ví dụ: Pentium (Intel)không gian địa chỉ bộ nhớ = 232 byte = 4GBkhông gian địa chỉ vào-ra = 216 byte = 64KBTín hiệu điều khiển Lệnh vào-ra chuyên dụng: IN, OUT

Page 133: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 5

5 September 2009 Bài giảng Kiến trúc Máy tính 17

NKK-HUT

b. Các phương pháp địa chỉ hoá cổng vào-ra

Vào-ra riêng biệt (Isolated IO hay IO mapped IO)

Vào-ra theo bản đồ bộ nhớ(Memory mapped IO)

5 September 2009 Bài giảng Kiến trúc Máy tính 18

NKK-HUT

Vào-ra riêng biệt

Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ vào-ra CPU trao đổi dữ liệu với cổng vào-ra thông qua các lệnh vào-ra chuyên dụng (IN, OUT)Chỉ có thể thực hiện trên các hệ thống cóquản lý không gian địa chỉ vào-ra riêng biệt

5 September 2009 Bài giảng Kiến trúc Máy tính 19

NKK-HUT

Vào-ra theo bản đồ bộ nhớ

Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ bộ nhớVào-ra giống như đọc/ghi bộ nhớ CPU trao đổi dữ liệu với cổng vào-ra thông qua các lệnh truy nhập dữ liệu bộnhớCó thể thực hiện trên mọi hệ thống

5 September 2009 Bài giảng Kiến trúc Máy tính 20

NKK-HUT

8.2. Các phương pháp điều khiển vào-ra

Vào-ra bằng chương trình (Programmed IO)

Vào-ra điều khiển bằng ngắt (Interrupt Driven IO)

Truy nhập bộ nhớ trực tiếp - DMA (Direct Memory Access)

Page 134: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 6

5 September 2009 Bài giảng Kiến trúc Máy tính 21

NKK-HUT

1. Vào-ra bằng chương trình

Nguyên tắc chung: CPU điều khiển trực tiếp vào-ra bằng chương trình cần phải lập trình vào-ra.

5 September 2009 Bài giảng Kiến trúc Máy tính 22

NKK-HUT

Các tín hiệu điều khiển vào-ra

Tín hiệu điều khiển (Control): kích hoạt thiết bị ngoại viTín hiệu kiểm tra (Test): kiểm tra trạng thái của mô-đun vào-ra và thiết bị ngoại viTín hiệu điều khiển đọc (Read): yêu cầu mô-đun vào-ra nhận dữ liệu từ thiết bị ngoại vi và đưa vào thanh ghi đệm dữ liệu, rồi CPU nhận dữ liệu đóTín hiệu điều khiển ghi (Write): yêu cầu mô-đun vào-ra lấy dữ liệu trên bus dữ liệu đưa đến thanh ghi đệm dữ liệu rồi chuyển ra thiết bị ngoại vi

5 September 2009 Bài giảng Kiến trúc Máy tính 23

NKK-HUT

Các lệnh vào-ra

Với vào-ra riêng biệt: sử dụng các lệnh vào-ra chuyên dụng (IN, OUT). Với vào-ra theo bản đồ bộ nhớ: sửdụng các lệnh trao đổi dữ liệu với bộnhớ để trao đổi dữ liệu với cổng vào-ra.

5 September 2009 Bài giảng Kiến trúc Máy tính 24

NKK-HUT

Lưu đồ đoạn chương trình vào-ra

Page 135: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 7

5 September 2009 Bài giảng Kiến trúc Máy tính 25

NKK-HUT

Hoạt động của vào-ra bằng chương trình

CPU yêu cầu thao tác vào-ra Mô-đun vào-ra thực hiện thao tác Mô-đun vào-ra thiết lập các bit trạng tháiCPU kiểm tra các bit trạng thái:

Nếu chưa sẵn sàng thì quay lại kiểm traNếu sẵn sàng thì chuyển sang trao đổi dữliệu với mô-đun vào-ra

5 September 2009 Bài giảng Kiến trúc Máy tính 26

NKK-HUT

Đặc điểm

Vào-ra do ý muốn của người lập trìnhCPU trực tiếp điều khiển vào-raCPU đợi mô-đun vào-ra tiêu tốn thời gian của CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 27

NKK-HUT

2. Vào-ra điều khiển bằng ngắt

Nguyên tắc chung:CPU không phải đợi trạng thái sẵn sàng của mô-đun vào-ra, CPU thực hiện một chương trình nào đóKhi mô-đun vào-ra sẵn sàng thì nó phát tín hiệu ngắt CPUCPU thực hiện chương trình con vào-ra tương ứng để trao đổi dữ liệu CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt

5 September 2009 Bài giảng Kiến trúc Máy tính 28

NKK-HUT

Chuyển điều khiển đến chương trình con ngắt

Page 136: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 8

5 September 2009 Bài giảng Kiến trúc Máy tính 29

NKK-HUT

Hoạt động vào dữ liệu: nhìn từ mô-đun vào-ra

Mô-đun vào-ra nhận tín hiệu điều khiển đọc từ CPU Mô-đun vào-ra nhận dữ liệu từ thiết bịngoại vi, trong khi đó CPU làm việc khácKhi đã có dữ liệu mô-đun vào-ra phát tín hiệu ngắt CPUCPU yêu cầu dữ liệu Mô-đun vào-ra chuyển dữ liệu đến CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 30

NKK-HUT

Hoạt động vào dữ liệu: nhìn từ CPU

Phát tín hiệu điều khiển đọcLàm việc khácCuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắtNếu bị ngắt:

Cất ngữ cảnh (nội dung các thanh ghi)Thực hiện chương trình con ngắt để vào dữ liệu Khôi phục ngữ cảnh của chương trình đang thực hiện

5 September 2009 Bài giảng Kiến trúc Máy tính 31

NKK-HUT

Các vấn đề nảy sinh khi thiết kế

Làm thế nào để xác định được mô-đun vào-ra nào phát tín hiệu ngắt ?CPU làm như thế nào khi có nhiều yêu cầu ngắt cùng xẩy ra ?

5 September 2009 Bài giảng Kiến trúc Máy tính 32

NKK-HUT

Các phương pháp nối ghép ngắt

Sử dụng nhiều đường yêu cầu ngắt Hỏi vòng bằng phần mềm (Software Poll)Hỏi vòng bằng phần cứng (Daisy Chain or Hardware Poll)Sử dụng bộ điều khiển ngắt (PIC)

Page 137: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 9

5 September 2009 Bài giảng Kiến trúc Máy tính 33

NKK-HUT

Nhiều đường yêu cầu ngắt

Mỗi mô-đun vào-ra được nối với một đường yêu cầu ngắtCPU phải có nhiều đường tín hiệu yêu cầu ngắtHạn chế số lượng mô-đun vào-raCác đường ngắt được qui định mức ưu tiên

5 September 2009 Bài giảng Kiến trúc Máy tính 34

NKK-HUT

Hỏi vòng bằng phần mềm

CPU thực hiện phần mềm hỏi lần lượt từng mô-đun vào-ra ChậmThứ tự các mô-đun được hỏi vòng chính làthứ tự ưu tiên

5 September 2009 Bài giảng Kiến trúc Máy tính 35

NKK-HUT

Hỏi vòng bằng phần cứng

5 September 2009 Bài giảng Kiến trúc Máy tính 36

NKK-HUT

Kiểm tra vòng bằng phần cứng (tiếp)

CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun vào-ra đầu tiên Nếu mô-đun vào-ra đó không gây ra ngắt thì nó gửi tín hiệu đến mô-đun kếtiếp cho đến khi xác định được mô-đun gây ngắtThứ tự các mô-đun vào-ra kết nối trong chuỗi xác định thứ tự ưu tiên

Page 138: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 10

5 September 2009 Bài giảng Kiến trúc Máy tính 37

NKK-HUT

Bộ điều khiển ngắt lập trình được

PIC – Programmable Interrupt ControllerPIC có nhiều đường vào yêu cầu ngắt có qui định mức ưu tiênPIC chọn một yêu cầu ngắt không bị cấm cómức ưu tiên cao nhất gửi tới CPU

5 September 2009 Bài giảng Kiến trúc Máy tính 38

NKK-HUT

Đặc điểm của vào-ra điều khiển bằng ngắt

Có sự kết hợp giữa phần cứng và phần mềm

Phần cứng: gây ngắt CPUPhần mềm: trao đổi dữ liệu

CPU trực tiếp điều khiển vào-ra CPU không phải đợi mô-đun vào-ra hiệu quả sử dụng CPU tốt hơn

5 September 2009 Bài giảng Kiến trúc Máy tính 39

NKK-HUT

Ngắt của 80x86

Tổ chức kiểu vector ngắtSố hiệu ngắt: n (00-FF)Bảng vector ngắt: 256 x 4 byte = 1024bytes00000 – 003FFLệnh INT n

5 September 2009 Bài giảng Kiến trúc Máy tính 40

NKK-HUT

3. DMA (Direct Memory Access)

Vào-ra bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển:

Chiếm thời gian của CPUTốc độ truyền bị hạn chế vì phải chuyển qua CPU

Để khắc phục dùng DMAThêm mô-đun phần cứng trên bus DMAC (Controller)DMAC điều khiển trao đổi dữ liệu giữa mô-đun vào-ra với bộ nhớ chính

Page 139: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 11

5 September 2009 Bài giảng Kiến trúc Máy tính 41

NKK-HUT

Sơ đồ cấu trúc của DMAC

5 September 2009 Bài giảng Kiến trúc Máy tính 42

NKK-HUT

Các thành phần của DMAC

Thanh ghi dữ liệu: chứa dữ liệu trao đổiThanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổiLogic điều khiển: điều khiển hoạt động của DMAC

5 September 2009 Bài giảng Kiến trúc Máy tính 43

NKK-HUT

Hoạt động DMA

CPU “nói” cho DMACVào hay Ra dữ liệu Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng)Địa chỉ đầu của mảng nhớ chứa dữ liệu nạp vào thanh ghi địa chỉSố từ dữ liệu cần truyền nạp vào bộ đếm dữ liệu

CPU làm việc khácDMAC điều khiển trao đổi dữ liệuSau khi truyền được một từ dữ liệu thì:

nội dung thanh ghi địa chỉ tăngnội dung bộ đếm dữ liệu giảm

Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để báo kết thúc DMA

5 September 2009 Bài giảng Kiến trúc Máy tính 44

NKK-HUT

Các kiểu thực hiện DMA

DMA truyền theo khối (Block-transfer DMA): DMAC sử dụng bus để truyền xong cả khối dữ liệu DMA lấy chu kỳ (Cycle Stealing DMA): DMAC cưỡng bức CPU treo tạm thời từng chu kỳbus, DMAC chiếm bus thực hiện truyền một từ dữ liệu.DMA trong suốt (Transparent DMA): DMAC nhận biết những chu kỳ nào CPU không sửdụng bus thì chiếm bus để trao đổi một từ dữliệu.

Page 140: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 12

5 September 2009 Bài giảng Kiến trúc Máy tính 45

NKK-HUT

Cấu hình DMA (1)

Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus hai lần

Giữa mô-đun vào-ra với DMACGiữa DMAC với bộ nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 46

NKK-HUT

Cấu hình DMA (2)

DMAC điều khiển một hoặc vài mô-đun vào-ra Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần

Giữa DMAC với bộ nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 47

NKK-HUT

Cấu hình DMA (3)

Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMAMỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần

Giữa DMAC với bộ nhớ

5 September 2009 Bài giảng Kiến trúc Máy tính 48

NKK-HUT

Đặc điểm của DMA

CPU không tham gia trong quá trình trao đổi dữ liệu DMAC điều khiển trao đổi dữ liệu giữa bộ nhớ chính với mô-đun vào-ra (hoàn toàn bằng phần cứng) tốc độ nhanhPhù hợp với các yêu cầu trao đổi mảng dữ liệu có kích thước lớn

Page 141: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 13

5 September 2009 Bài giảng Kiến trúc Máy tính 49

NKK-HUT

4. Kênh vào-ra hay là bộ xử lý vào-ra

Việc điều khiển vào-ra được thực hiện bởi một bộ xử lý vào-ra chuyên dụngBộ xử lý vào-ra hoạt động theo chương trình của riêng nóChương trình của bộ xử lý vào-ra có thểnằm trong bộ nhớ chính hoặc nằm trong một bộ nhớ riêngHoạt động theo kiến trúc đa xử lý

5 September 2009 Bài giảng Kiến trúc Máy tính 50

NKK-HUT

8.3. Nối ghép thiết bị ngoại vi

1. Các kiểu nối ghép vào-raNối ghép song songNối ghép nối tiếp

5 September 2009 Bài giảng Kiến trúc Máy tính 51

NKK-HUT

Nối ghép song song

Truyền nhiều bit song songTốc độ nhanhCần nhiều đường truyền dữ liệu

5 September 2009 Bài giảng Kiến trúc Máy tính 52

NKK-HUT

Nối ghép nối tiếp

Truyền lần lượt từng bit Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp hoặc/và ngược lạiTốc độ chậm hơnCần ít đường truyền dữ liệu

Page 142: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh - ĐHBKHN 14

5 September 2009 Bài giảng Kiến trúc Máy tính 53

NKK-HUT

2. Các cấu hình nối ghép

Điểm tới điểm (Point to Point)Thông qua một cổng vào-ra nối ghép với một thiết bị ngoại vi

Điểm tới đa điểm (Point to Multipoint)Thông qua một cổng vào-ra cho phép nối ghép được với nhiều thiết bị ngoại vi Ví dụ:

SCSI (Small Computer System Interface): 7 hoặc 15 thiết bịUSB (Universal Serial Bus): 127 thiết bịIEEE 1394 (FireWire): 63 thiết bị

5 September 2009 Bài giảng Kiến trúc Máy tính 54

NKK-HUT

Các cổng PS/2: nối ghép bàn phím và chuộtCổng nối ghép màn hìnhCổng LPT (Line Printer): nối ghép với máy in, làcổng song song (Parallel Port) – 25 chânCổng COM (Communication): nối ghép với MODEM, là cổng nối tiếp (Serial Port) - 9 hoặc 25 chânCổng USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị, nhờ các USB Hub...

8.4. Các cổng vào-ra thông dụng trên PC

5 September 2009 Bài giảng Kiến trúc Máy tính 55

NKK-HUT

Hết chương 8

Page 143: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh 1

5 September 2009 Bài giảng Kiến trúc Máy tính 1

NKK-HUT

Kiến trúc máy tính

Chương 9MÁY TÍNH SONG SONG

Nguyễn Kim KhánhTrường Đại học Bách khoa Hà Nội

5 September 2009 Bài giảng Kiến trúc máy tính 2

NKK-HUT

Nội dung học phần

Chương 1. Giới thiệu chungChương 2. Cơ bản về logic sốChương 3. Tổng quan về hệ thống máy tínhChương 4. Kiến trúc tập lệnhChương 5. Số học máy tínhChương 6. Bộ xử lý trung tâmChương 7. Bộ nhớ máy tínhChương 8. Hệ thống vào-raChương 9. Máy tính song song

5 September 2009 Bài giảng Kiến trúc Máy tính 3

NKK-HUT

9.1. Phân loại kiến trúc máy tính 9.2. Máy tính vector và bộ xử lý mảng9.3. Một số kiến trúc MIMD thông dụng

Nội dung của chương 9

5 September 2009 Bài giảng Kiến trúc Máy tính 4

NKK-HUT

9.1. Phân loại kiến trúc máy tính

Phân loại của Michael Flynn (1966)SISD - Single Instruction Stream, Single Data StreamSIMD - Single Instruction Stream, Multiple Data StreamMISD - Multiple Instruction Stream, Single Data StreamMIMD - Multiple Instruction Stream, Multiple Data Stream

Page 144: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh 2

5 September 2009 Bài giảng Kiến trúc Máy tính 5

NKK-HUT

SISD

CU: Control UnitPU: Processing UnitMU: Memory UnitMột bộ xử lýĐơn dòng lệnhDữ liệu được lưu trữ trong một bộ nhớChính là Kiến trúc von Neumann

5 September 2009 Bài giảng Kiến trúc Máy tính 6

NKK-HUT

SIMD

5 September 2009 Bài giảng Kiến trúc Máy tính 7

NKK-HUT

SIMD (tiếp)

Đơn dòng lệnh điều khiển đồng thời các phần tử xử lý PE (processing elements)Mỗi phần tử xử lý có một bộ nhớ dữ liệu riêng LM (local memory)Mỗi lệnh được thực hiện trên một tập các dữ liệu khác nhauCác mô hình SIMD

Vector Computer Array processor

5 September 2009 Bài giảng Kiến trúc Máy tính 8

NKK-HUT

MISD

Một luồng dữ liệu cùng được truyền đến một tập các bộ xử lýMỗi bộ xử lý thực hiện một dãy lệnh khác nhau.Chưa tồn tại máy tính thực tếCó thể có trong tương lai

Page 145: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh 3

5 September 2009 Bài giảng Kiến trúc Máy tính 9

NKK-HUT

MIMD

Tập các bộ xử lýCác bộ xử lý đồng thời thực hiện các dãy lệnh khác nhau trên các dữ liệu khác nhauCác mô hình MIMD

Multiprocessors (Shared Memory)Multicomputers (Distributed Memory)

5 September 2009 Bài giảng Kiến trúc Máy tính 10

NKK-HUT

MIMD - Shared Memory

5 September 2009 Bài giảng Kiến trúc Máy tính 11

NKK-HUT

MIMD - Distributed Memory

5 September 2009 Bài giảng Kiến trúc Máy tính 12

NKK-HUT

9.2. Máy tính vector và bộ xử lý mảng

Thuộc loại SIMDData parallelism in time = vector processingData parallelism in space = array processing

Page 146: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh 4

5 September 2009 Bài giảng Kiến trúc Máy tính 13

NKK-HUT

Phép toán trên vector

Bộ xử lý tuần tự:

for i = 0 to 63 do P[i] := W[i] × D[i]

endfor

Bộ xử lý vector:

load Wload DP := W × Dstore P

for i = 0 to 63 do X[i+1] := X[i] + Z[i] Y[i+1] := X[i+1]+Y[i]

endfor

Không xử lý song song được

5 September 2009 Bài giảng Kiến trúc Máy tính 14

NKK-HUT

Thực hiện bộ xử lý vector

Function unit 1 pipeline

To a

nd fr

om m

emor

y un

it

From scalar registers

Vector register

file

Function unit 2 pipeline

Function unit 3 pipeline

Forwarding muxes

Load unit A

Load unit B

Store unit

5 September 2009 Bài giảng Kiến trúc Máy tính 15

NKK-HUT

Ví dụ bộ xử lý mảng

Control broadcast Parallel

I/O

Processor array Control

Switches

5 September 2009 Bài giảng Kiến trúc Máy tính 16

NKK-HUT

9.3. Một số kiến trúc MIMD thông dụng

1.SMP (Symmetric Multiprocessors)

Page 147: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh 5

5 September 2009 Bài giảng Kiến trúc Máy tính 17

NKK-HUT

SMP (tiếp)

Một máy tính có n >= 2 bộ xử lý giống nhauCác bộ xử lý dùng chung bộ nhớ và hệ thống vào-ra Thời gian truy cập bộ nhớ là bằng nhau với các bộ xử lý Tất cả các bộ xử lý chia sẻ truy nhập vào-ra Các bộ xử lý có thể thực hiện chức năng giống nhau Hệ thống được điều khiển bởi một hệ điều hành phân tán

5 September 2009 Bài giảng Kiến trúc Máy tính 18

NKK-HUT

Ưu điểm của SMP

Hiệu năngCác công việc có thể thực hiện song song

Tính sẵn dùngCác bộ xử lý có thể thực hiện các chức năng giống nhau, vì vậy lỗi của một bộ xửlý sẽ không làm dừng hệ thống

Khả năng mở rộngNgười sử dụng có thể tăng hiệu năng bằng cách thêm bộ xử lý

5 September 2009 Bài giảng Kiến trúc Máy tính 19

NKK-HUT

2. Cluster

Nhiều máy tính được kết nối với nhau bằng mạng liên kết tốc độ cao (~ Gbps)Mỗi máy tính có thể làm việc độc lập Mỗi máy tính được gọi là một nodeCác máy tính có thể được quản lý làm việc song song theo nhóm (cluster) Toàn bộ hệ thống có thể coi như là một máy tính song song

5 September 2009 Bài giảng Kiến trúc Máy tính 20

NKK-HUT

Cluster (tiếp)

Dễ dàng xây dựng và mở rộngTính sẵn sàng caoKhả năng chịu lỗi Giá thành rẻ với hiệu năng cao

Page 148: KTMT Completed

Bài giảng Kiến trúc máy tính

Nguyễn Kim Khánh 6

5 September 2009 Bài giảng Kiến trúc Máy tính 21

NKK-HUT

Cluster of PCs

5 September 2009 Bài giảng Kiến trúc Máy tính 22

NKK-HUT

Cluster of SMPs

5 September 2009 Bài giảng Kiến trúc Máy tính 23

NKK-HUT

Ví dụ: Hệ thống máy chủ Google (12/ 2000)

Cluster of PCsHơn 6.000 bộ xử lýHệ thống lưu trữ dùng RAID: có 12.000 đĩa cứng ~ 1petabyte (1triệu GB)2 site ở Silicon Valley, 1site ở VirginiaMỗi site được kết nối với Internet qua OC48 (2488Mbps)

5 September 2009 Bài giảng Kiến trúc Máy tính 24

NKK-HUT

Hết chương 7