20
Bài ging Kiến trúc máy tính Jan2014 Nguyn Kim Khánh DCE-HUST 1 TRƯỜNG ĐẠI HC BÁCH KHOA HÀ NI Hanoi University of Science and Technology KIN TRÚC MÁY TÍNH Computer Architecture Nguyn Kim Khánh Bmôn Kthut máy tính Vin Công nghthông tin và Truyn thông Department of Computer Engineering (DCE) School of Information and Communication Technology (SoICT) Version: Jan 2014 NKK-HUST Contact Information Address: 502-B1 Mobile: 091-358-5533 e-mail: [email protected] [email protected] Jan2014 Computer Architecture 2 NKK-HUST Mc tiêu hc phn Sinh viên được trang bcác kiến thc cơ svkiến trúc tp lnh và tchc ca máy tính, cũng như nhng vn đề cơ bn trong thiết kế máy tính. Sau khi hc xong hc phn này, sinh viên có khnăng: Tìm hiu kiến trúc tp lnh ca các bxlý cth Lp trình hp ngtrên mt skiến trúc Đánh giá hiu năng ca các hmáy tính Khai thác và qun trhiu qucác hthng máy tính Phân tích và thiết kế máy tính Jan2014 Computer Architecture 3 NKK-HUST Tài liu tham kho chính [1] William Stallings - Computer Organization and Architecture – Designing for Performance – 2013 (9 th edition) [2] David A. Patterson & John L. Hennessy - Computer Organization and Design: The Hardware/Software Interface 2012 (revised 4 th edition) [3] David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture – 2013 (2 nd edition) [4] Andrew S. Tanenbaum - Structured Computer Organization 2012 (6 th edition) Jan2014 Computer Architecture 4

ả ến trúc máy tính Jan2014 - dulieu.tailieuhoctap.vndulieu.tailieuhoctap.vn/books/cong-nghe-thong-tin/the-loai-khac/... · Cấu trúc cơ bản của máy tính ... with only

  • Upload
    hanhu

  • View
    220

  • Download
    2

Embed Size (px)

Citation preview

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

Nguyễn Kim Khánh DCE-HUST 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Hanoi University of Science and Technology

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

Nguyễn Kim Khánh Bộ môn Kỹ thuật máy tính Viện Công nghệ thông tin và Truyền thông Department of Computer Engineering (DCE) School of Information and Communication Technology (SoICT) Version: Jan 2014

NKK-HUST

Contact Information

n  Address: 502-B1 n  Mobile: 091-358-5533 n  e-mail: [email protected] [email protected]

Jan2014 Computer Architecture 2

NKK-HUST

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

n  Sinh viên được trang bị các kiến thức cơ sở về kiến trúc tập lệnh và tổ chức của máy tính, cũng như những vấn đề cơ bản trong thiết kế máy tính.

n  Sau khi học xong học phần này, sinh viên có khả năng: n  Tìm hiểu kiến trúc tập lệnh của các bộ xử lý cụ thể n  Lập trình hợp ngữ trên một số kiến trúc n  Đánh giá hiệu năng của các họ máy tính n  Khai thác và quản trị hiệu quả các hệ thống máy tính n  Phân tích và thiết kế máy tính

Jan2014 Computer Architecture 3

NKK-HUST

Tài liệu tham khảo chính [1] William Stallings - Computer Organization and

Architecture – Designing for Performance – 2013 (9th edition)

[2] David A. Patterson & John L. Hennessy - Computer

Organization and Design: The Hardware/Software Interface – 2012 (revised 4th edition)

[3] David Money Harris and Sarah L. Harris, Digital

Design and Computer Architecture – 2013 (2nd edition) [4] Andrew S. Tanenbaum - Structured Computer

Organization – 2012 (6th edition)

Jan2014 Computer Architecture 4

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

Nguyễn Kim Khánh DCE-HUST 2

NKK-HUST

Nội dung học phần

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

Jan2014 Computer Architecture 5

NKK-HUST

Chú ý: Bài giảng mới nhất Jan 2014

ftp://dce.hust.edu.vn/khanhnk/CA

Jan2014 Computer Architecture 6

NKK-HUST

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

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

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

Jan2014 Computer Architecture 7

NKK-HUST

1.1. Máy tính và phân loại 1.2. Khái niệm kiến trúc máy tính 1.3. Sự tiến hóa của máy tính 1.4. Hiệu năng máy tính

Nội dung

Jan2014 Computer Architecture 8

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

Nguyễn Kim Khánh DCE-HUST 3

NKK-HUST

n  Máy tính (Computer) là thiết bị điện tử thực hiện các công việc sau: n  Nhận thông tin vào, n  Xử lý thông tin theo dãy các lệnh được nhớ sẵn bên

trong, n  Đưa thông tin ra.

n  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

Jan2014 Computer Architecture 9

NKK-HUST

Máy tính ....

Các thiết bị vào

(Input Devices)

Bộ nhớ chính(Main Memory)

Các thiết bị ra(Output

Devices)

Bộ xử lý trung tâm (Central

Processing Unit)

Jan2014 Computer Architecture 10

NKK-HUST

n  Phân loại truyền thống: n  Máy vi tính (Microcomputers) n  Máy tính nhỏ (Minicomputers) n  Máy tính lớn (Mainframe Computers) n  Siêu máy tính (Supercomputers)

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

Jan2014 Computer Architecture 11

NKK-HUST

n  Thiết bị di động cá nhân (Personal Mobile Devices): n  Smartphones, Tablet

n  Máy tính cá nhân đa dụng (Personal Computers) n  Desktop computers, Laptop computers

n  Máy chủ (Servers) n  Thực chất là Máy phục vụ n  Dùng trong mạng theo mô hình Client/Server

n  Máy tính cụm/máy tính qui mô lớn (Clusters/Warehouse Scale Computers): n  Sử dụng tại các trung tâm tính toán, trung tâm dữ liệu n  Supercomputers

n  Máy tính nhúng (Embedded Computers) n  Đặt ẩn trong thiết bị khác n  Được thiết kế chuyên dụng

Phân loại máy tính hiện đại [P&H]

Jan2014 Computer Architecture 12

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

Nguyễn Kim Khánh DCE-HUST 4

NKK-HUST

1.2. Khái niệm kiến trúc máy tính

n  Định nghĩa trước đây về kiến trúc máy tính: n  Là thiết kế kiến trúc tập lệnh (Instruction Set

Architecture – ISA) n  Các thuộc tính của máy tính theo cách nhìn

người lập trình (hardware/software interface) n  Là định nghĩa hẹp

Jan2014 Computer Architecture 13

NKK-HUST

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

n  Kiến trúc máy tính bao gồm: n  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).

n  Tổ chức máy tính (Computer Organization) hay Vi kiến trúc (Microarchitecture): 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.

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

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

Jan2014 Computer Architecture 14

NKK-HUST

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: n  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

n  Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính có thể xử lý

Jan2014 Computer Architecture 15

NKK-HUST

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

Jan2014 Computer Architecture 16

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

Nguyễn Kim Khánh DCE-HUST 5

NKK-HUST

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

n  Bộ nhớ chính (Main Memory): Chứa các chương trình và dữ liệu đang được sử dụng.

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

n  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

Jan2014 Computer Architecture 17

NKK-HUST

Mô hình phân lớp của máy tính

n  Phần cứng (Hardware): hệ thống vật lý của máy tính. n  Phần mềm (Software): các chương trình và dữ liệu.

Phần mềm ứng dụng

Phần mềm trung gian

Hệ điều hành

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

Vi kiến trúc

Logic-số

Mạch điện tử

Jan2014 Computer Architecture 18

Các phần mềm ứng dụng

Các phần mềm trung gian

Hệ điều hành

Phần cứng

Người sử dụng Người lập

trình

Người thiết kế HĐH

NKK-HUST

1.3. Sự tiến hóa của máy tính

Các thế hệ máy tính n  Thế hệ thứ nhất: Máy tính dùng đèn điện tử

chân không (1950s) n  Thế hệ thứ hai: Máy tính dùng transistor

(1960s) n  Thế hệ thứ ba: Máy tính dùng vi mạch SSI,

MSI và LSI (1970s) n  Thế hệ thứ tư: Máy tính dùng vi mạch VLSI

(1980s) n  Thế hệ thứ năm: Máy tính dùng vi mạch

ULSI, SoC (1990s-nay) Jan2014 Computer Architecture 19

NKK-HUST

n  Electronic Numerical Intergator and Computer

n  Dự án của Bộ Quốc phòng Mỹ n  Do John Mauchly và John Presper

Eckert ở Đại học Pennsylvania thiết kế. n  Bắt đầu từ 1943, hoàn thành 1946 n  Nặng 30 tấn n  18000 đèn điện tử và 1500 rơle n  5000 phép cộng/giây n  Xử lý theo số thập phân n  Bộ nhớ chỉ lưu trữ dữ liệu n  Lậ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 – Máy tính điện tử đầu tiên

Jan2014 Computer Architecture 20

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

Nguyễn Kim Khánh DCE-HUST 6

NKK-HUST

Máy tính von Neumann

n  Chính là máy tính IAS (thực hiện tại Princeton Institute for Advanced Studies)

n  Bắt đầu 1947, hoàn thành 1952 n  Do John von Neumann thiết kế n  Đượ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)

n  Trở thành mô hình cơ bản của máy tính

Jan2014 Computer Architecture 21

NKK-HUST

n  Vi mạch hay là mạch tích hợp (Integrated Circuit - IC): mạch điện tử gồm nhiều transistors và các linh kiện khác được tích hợp trên một chip bán dẫn.

n  Phân loại vi mạch theo qui mô tích hợp: n  SSI - Small Scale Integration n  MSI - Medium Scale Integration n  LSI - Large Scale Integration n  VLSI - Very Large Scale Integration n  ULSI - Ultra Large Scale Integration

Vi mạch

Jan2014 Computer Architecture 22

NKK-HUST

n  Bộ vi xử lý (Microprocessors): CPU được chế tạo trên một chip.

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

n  Bộ nhớ bán dẫn (Semiconductor Memory): ROM, RAM, Flash

n  Hệ thống trên chip (SoC – System on Chip) n  Các bộ vi điều khiển (Microcontrollers)

Một số vi mạch số điển hình

Jan2014 Computer Architecture 23

NKK-HUST

Luật Moore

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

cậy

2.1 / A BRIEF HISTORY OF COMPUTERS 31

9The term mainframe is used for the larger, most powerful computers other than supercomputers. Typical characteristics of a mainframe are that it supports a large database, has elaborate I/O hardware, and is used in a central data processing facility.

IBM SYSTEM/360 By 1964, IBM had a firm grip on the computer market with its 7000 series of machines. In that year, IBM announced the System/360, a new family of computer products. Although the announcement itself was no surprise, it contained some unpleasant news for current IBM customers: the 360 product line was incompatible with older IBM machines. Thus, the transition to the 360 would be difficult for the current customer base. This was a bold step by IBM, but one IBM felt was necessary to break out of some of the constraints of the 7000 architecture and to produce a system capable of evolving with the new integrated circuit technology [PADE81, GIFF87]. The strategy paid off both financially and technically. The 360 was the success of the decade and cemented IBM as the overwhelmingly dominant computer vendor, with a market share above 70%. And, with some modifications and extensions, the architecture of the 360 remains to this day the architecture of IBM’s mainframe9 computers. Examples using this architecture can be found throughout this text.

The System/360 was the industry’s first planned family of computers. The family covered a wide range of performance and cost. Table 2.4 indicates some of the key characteristics of the various models in 1965 (each member of the family is distinguished by a model number). The models were compatible in the sense that a program written for one model should be capable of being executed by another model in the series, with only a difference in the time it takes to execute.

The concept of a family of compatible computers was both novel and extremely successful. A customer with modest requirements and a budget to match could start with the relatively inexpensive Model 30. Later, if the customer’s needs grew, it was possible to upgrade to a faster machine with more memory without

11947

First w

orking

trans

istor

Moo

re’s l

aw

promulg

ated

Inven

tion o

f

integ

rated

circu

it

50 55 60 65 70 75 80 85 90 95 2000 05 11

10100100010,000100,00010 m100 m1 bn10 bn100 bn

Figure 2.8 Growth in Transistor Count on Integrated Circuits

Jan2014 Computer Architecture 24

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

Nguyễn Kim Khánh DCE-HUST 7

NKK-HUST

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

n  1971: bộ vi xử lý 4-bit Intel 4004 n  1972: các bộ xử lý 8-bit n  1978: các bộ xử lý 16-bit n  1985: các bộ xử lý 32-bit n  2001: các bộ xử lý 64-bit n  2006: các bộ xử lý đa lõi (multicores)

Jan2014 Computer Architecture 25

NKK-HUST

Máy tính ngày nay

Clusters

Massive Cluster

Gigabit Ethernet

Robots Routers

Cars

Sensor Nets

Ref

riger

ator

s

Robots Routers Jan2014 Computer Architecture 26

NKK-HUST

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

n  Định nghĩa hiệu năng P(Performance): P = 1/ t

trong đó: t là thời gian thực hiện n  “Máy tính A nhanh hơn máy B n lần” PA / PB = tB / tA = n n  Ví dụ: Thời gian chạy chương trình:

n  10s trên máy A, 15s trên máy B n  tB / tA = 15s / 10s = 1.5 n  Vậy máy A nhanh hơn máy B 1.5 lần

Jan2014 Computer Architecture 27

NKK-HUST

Xung nhịp của CPU n  Hoạt động của CPU được điều khiển bởi xung

nhịp có tần số xác định

n  Chu kỳ xung nhịp T0(Clock period): thời gian của một chu kỳ

n  Tần số xung nhịp f0 (Clock rate): số chu kỳ trong 1 giây. n  f0 = 1/T0

n  VD: Bộ xử lý có f0 = 4GHz = 4000MHz = 4×109Hz T0 = 1/(4x109) = 0.25x10–9s = 0.25ns

T0

Jan2014 Computer Architecture 28

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

Nguyễn Kim Khánh DCE-HUST 8

NKK-HUST

Thời gian CPU (tCPU)

n  trong đó: n là số chu kỳ xung nhịp n  Hiệu năng được tăng lên bằng cách:

n  Giảm số chu kỳ xung nhịp n n  Tăng tần số xung nhịp f0

00 f

nTntCPU =×=

Jan2014 Computer Architecture 29

NKK-HUST

Ví dụ n  Máy tính A:

n  Tần số xung nhịp: fA= 2GHz n  Thời gian của CPU: tA = 10s

n  Máy tính B n  Thời gian của CPU: tB = 6s n  Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A

n  Xác định tần số xung nhịp của máy B (fB)?

Jan2014 Computer Architecture 30

NKK-HUST

Ví dụ n  Máy tính A:

n  Tần số xung nhịp: fA= 2GHz n  Thời gian của CPU: tA = 10s

n  Máy tính B n  Thời gian của CPU: tB = 6s n  Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A

n  Xác định tần số xung nhịp của máy B (fB)? n  Giải:

GHzss

f

GHzsftnsn

tnf

B

AAA

A

B

BB

461024

610202.1

102021062.1

99

9

=××

=

×=×=×=

×==

Jan2014 Computer Architecture 31

NKK-HUST

Số lệnh và số chu kỳ trên một lệnh

n  Trong trường hợp các lệnh khác nhau có CPI khác nhau, cần tính CPI trung bình

n  Số chu kỳ = Số lệnh x Số chu kỳ trên một lệnh CPIICn ×=

n - số chu kỳ, IC - số lệnh (Instruction Count), CPI - số chu kỳ trên một lệnh (Cycles per Instruction)

n  Thời gian thực hiện của CPU:

00 f

CPIICTCPIICtCPU×

=××=

Jan2014 Computer Architecture 32

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

Nguyễn Kim Khánh DCE-HUST 9

NKK-HUST

Ví dụ

n  Máy tính A: TA = 250ps, CPIA = 2.0 n  Máy tính B: TB = 500ps, CPIB = 1.2 n  Cùng kiến trúc tập lệnh (ISA) n  Máy nào nhanh hơn và nhanh hơn bao nhiêu ?

Jan2014 Computer Architecture 33

NKK-HUST

Ví dụ

n  Máy tính A: TA = 250ps, CPIA = 2.0 n  Máy tính B: TB = 500ps, CPIB = 1.2 n  Cùng kiến trúc tập lệnh (ISA) n  Máy nào nhanh hơn và nhanh hơn bao nhiêu ?

1.2500psIC600psIC

AtBt

600psIC500ps1.2ICBTBCPIICBt

500psIC250ps2.0ICATACPIICAt

×=

×=××=

××=

×=××=

××=

Vậy: A nhanh hơn B 1.2 lần

Jan2014 Computer Architecture 34

NKK-HUST

Chi tiết hơn về CPI

n  Nếu loại lệnh khác nhau có số chu kỳ khác nhau, ta có tổng số chu kỳ:

∑=

×=K

1iii )IC(CPIn

n  CPI trung bình:

∑=

⎟⎠

⎞⎜⎝

⎛ ×==K

1i

iiTB ICICCPI

ICnCPI

Jan2014 Computer Architecture 35

NKK-HUST

Ví dụ

n  Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh thuộc các loại A, B, C. Tính CPI trung bình?

Loại lệnh A B C CPI theo loại lệnh 1 2 3 IC trong dãy lệnh 1 2 1 2 IC trong dãy lệnh 2 4 1 1

Jan2014 Computer Architecture 36

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

Nguyễn Kim Khánh DCE-HUST 10

NKK-HUST

Ví dụ

n  Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh thuộc các loại A, B, C. Tính CPI trung bình?

Loại lệnh A B C CPI theo loại lệnh 1 2 3 IC trong dãy lệnh 1 2 1 2 IC trong dãy lệnh 2 4 1 1

n  Dãy lệnh 1: IC = 5 n  Số chu kỳ

= 2×1 + 1×2 + 2×3 = 10

n  CPITB = 10/5 = 2.0

n  Dãy lệnh 2: IC = 6 n  Số chu kỳ

= 4×1 + 1×2 + 1×3 = 9

n  CPITB = 9/6 = 1.5

Jan2014 Computer Architecture 37

NKK-HUST

Tóm tắt về Hiệu năng

n  Hiệu năng phụ thuộc vào: n  Thuật toán n  Ngôn ngữ lập trình n  Chương trình dịch n  Kiến trúc tập lệnh

cycle ClockSeconds

nInstructiocycles Clock

ProgramnsInstructioTime CPU ××=

00 f

CPIICTCPIICtCPU×

=××=

Jan2014 Computer Architecture 38

NKK-HUST

MIPS như là thước đo hiệu năng

n  MIPS: Millions of Instructions Per Second (Số triệu lệnh trên 1 giây)

10CPIrate Clock

10rate Clock

CPIcount nInstructiocount nInstructio

10time Executioncount nInstructioMIPS 6

66 ×

×=

×=

60

10MIPSfCPI×

=60

10CPIfMIPS×

=

Jan2014 Computer Architecture 39

NKK-HUST

Ví dụ  Tính MIPS của bộ xử lý với:

clock rate = 2GHz và CPI = 4

Jan2014 Computer Architecture 40

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

Nguyễn Kim Khánh DCE-HUST 11

NKK-HUST

Ví dụ  Tính MIPS của bộ xử lý với:

clock rate = 2GHz và CPI = 4

0.5ns

2ns

1 chu kỳ = 1/(2x109) = 0,5ns CPI = 4 à thời gian thực hiện 1 lệnh: 4 x 0,5ns = 2ns Vậy bộ xử lý thực hiện được 500 MIPS

Jan2014 Computer Architecture 41

NKK-HUST

Ví dụ

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

Jan2014 Computer Architecture 42

NKK-HUST

Ví dụ

 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,5ns à  CPI = 2,5

Jan2014 Computer Architecture 43

NKK-HUST

MFLOPS

Millions of Floating Point Operations per Second (Số triệu phép toán số dấu phẩy động trên một giây)

GFLOPS(109 ) TFLOPS(1012)

610time Executionoperations point floating ExecutedMFLOPS×

=

Jan2014 Computer Architecture 44

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

Nguyễn Kim Khánh DCE-HUST 12

NKK-HUST

Hết chương 1

Jan2014 Computer Architecture 45

NKK-HUST

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

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

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

Jan2014 Computer Architecture 46

NKK-HUST

Nội dung học phần

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

Jan2014 Computer Architecture 47

NKK-HUST

2.1. Các hệ đếm cơ bản 2.2. Đại số Boole 2.3. Các cổng logic 2.4. Mạch tổ hợp 2.5. Mạch dãy

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

Jan2014 Computer Architecture 48

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

Nguyễn Kim Khánh DCE-HUST 13

NKK-HUST

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

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

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

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

Jan2014 Computer Architecture 49

NKK-HUST

1. Hệ thập phân

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

Jan2014 Computer Architecture 50

NKK-HUST

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∑

−=

=

Jan2014 Computer Architecture 51

NKK-HUST

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

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

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

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

Jan2014 Computer Architecture 52

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

Nguyễn Kim Khánh DCE-HUST 14

NKK-HUST

2. Hệ nhị phân

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

khác nhau: n  00...000 = 0 n  11...111 = 2n - 1

Jan2014 Computer Architecture 53

NKK-HUST

Bits, Bytes, Nibbles…

n  Bits

n  Bytes & Nibbles

n  Bytes

10010110nibble

byte

CEBF9AD7least

significantbyte

mostsignificantbyte

10010110least

significantbit

mostsignificant

bit

Jan2014 Computer Architecture 54

NKK-HUST

Lũy thừa hai

n  210 = 1 kilo ≈ 1000 (1024) n  220 = 1 mega ≈ 1 triệu (1,048,576) n  230 = 1 giga ≈ 1 tỷ (1,073,741,824) n  240 = 1 tera ≈ 1000 tỷ n  250 = 1 peta ≈ 1 triệu tỷ

Jan2014 Computer Architecture 55

NKK-HUST

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:

Jan2014 Computer Architecture 56

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

Nguyễn Kim Khánh DCE-HUST 15

NKK-HUST

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)

Jan2014 Computer Architecture 57

NKK-HUST

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

n  Phương pháp 1: chia dần cho 2 rồi lấy phần dư

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

Jan2014 Computer Architecture 58

NKK-HUST

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

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

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

Jan2014 Computer Architecture 59

NKK-HUST

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

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

27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 0 1 1 0 1 0 0 1

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

n  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

Jan2014 Computer Architecture 60

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

Nguyễn Kim Khánh DCE-HUST 16

NKK-HUST

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

n  Ví dụ 1: chuyển đổi 0.6875(10) n  0.6875 x 2 = 1.375 phần nguyên = 1 n  0.375 x 2 = 0.75 phần nguyên = 0 n  0.75 x 2 = 1.5 phần nguyên = 1 n  0.5 x 2 = 1.0 phần nguyên = 1

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

Jan2014 Computer Architecture 61

NKK-HUST

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

n  Ví dụ 2: chuyển đổi 0.81(10) n  0.81 x 2 = 1.62 phần nguyên = 1 n  0.62 x 2 = 1.24 phần nguyên = 1 n  0.24 x 2 = 0.48 phần nguyên = 0 n  0.48 x 2 = 0.96 phần nguyên = 0 n  0.96 x 2 = 1.92 phần nguyên = 1 n  0.92 x 2 = 1.84 phần nguyên = 1 n  0.84 x 2 = 1.68 phần nguyên = 1

n  0.81(10) ≈ 0.1100111(2)

Jan2014 Computer Architecture 62

NKK-HUST

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

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

n  0.2(10) ≈ 0.00110011 (2)

Jan2014 Computer Architecture 63

NKK-HUST

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

n  Cơ số 16 n  16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F n  Dù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

Jan2014 Computer Architecture 64

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

Nguyễn Kim Khánh DCE-HUST 17

NKK-HUST

Quan hệ giữa số nhị phân và số Hexa 4-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: n  1011 00112 = B316 n  0000 00002 = 0016 n  0010 1101 1001 10102 = 2D9A16

n  1111 1111 1111 11112 = FFFF16

Jan2014 Computer Architecture 65

NKK-HUST

2.2. Đại số Boole

n  Đại số Boole sử dụng các biến logic và phép toán logic

n  Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0 (FALSE)

n  Phép toán logic cơ bản là AND, OR và NOT với ký hiệu như sau: n  A AND B : A•B n  A OR B : A + B n  NOT A : A

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

Jan2014 Computer Architecture 66

NKK-HUST

Các phép toán logic (tiếp)

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

n  A NAND B:

n  A NOR B :

n  A XOR B:

BA•

BA+

BABABA •+•=⊕

Jan2014 Computer Architecture 67

NKK-HUST

Phép toán đại số Boole

A B NOT A

A A AND B

A•B A OR B

A+B A NAND B

A•B A NOR B

A+B A XOR B

A ⊕ B

0

0

1

1

0

1

0

1

1

1

0

0

0

0

0

1

0

1

1

1

1

1

1

0

1

0

0

0

0

1

1

0

Jan2014 Computer Architecture 68

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

Nguyễn Kim Khánh DCE-HUST 18

NKK-HUST

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

0 • A = 0

A • A = A

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

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

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

0 + A = A

A + A = 1

1 + A = 1

A + A = A

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

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

Jan2014 Computer Architecture 69

NKK-HUST

2.3. Các cổng logic (Logic Gates)

n  Thực hiện các hàm logic: n  NOT, AND, OR, NAND, NOR, etc.

n  Cổng logic một đầu vào: n  Cổng NOT, bộ đệm (buffer)

n  Cổng hai đầu vào: n  AND, OR, XOR, NAND, NOR, XNOR

n  Cổng nhiều đầu vào

Jan2014 Computer Architecture 70

NKK-HUST

Các cổng logic

368 CHAPTER 11 / DIGITAL LOGIC

11.2 GATES

The fundamental building block of all digital logic circuits is the gate. Logical func-tions are implemented by the interconnection of gates.

A gate is an electronic circuit that produces an output signal that is a sim-ple Boolean operation on its input signals. The basic gates used in digital logic are AND, OR, NOT, NAND, NOR, and XOR. Figure 11.1 depicts these six gates. Each gate is defined in three ways: graphic symbol, algebraic notation, and truth table. The symbology used in this chapter is from the IEEE standard, IEEE Std 91. Note that the inversion (NOT) operation is indicated by a circle.

Each gate shown in Figure 11.1 has one or two inputs and one output. However, as indicated in Table 11.1b, all of the gates except NOT can have more than two inputs. Thus, (X + Y + Z) can be implemented with a single OR gate with three inputs. When one or more of the values at the input are changed, the correct output signal appears almost instantaneously, delayed only by the propaga-tion time of signals through the gate (known as the gate delay). The significance of this delay is discussed in Section 11.3. In some cases, a gate is implemented with two outputs, one output being the negation of the other output.

A B F0 0 10 1 01 0 01 1 0A B F0 0 00 1 11 0 11 1 0

Graphical SymbolAlgebraicFunction Truth TableName

AND

OR

NOT

NAND

NOR

XOR

F ! A • Bor

F ! AB

F ! A " B

A B F0011

0001

0101

A B F0011

0111

0101

A B F0011

1110

0101

A F01

10

A

A

B

F ! Aor

F ! A#

F ! AB

F ! A " B

F ! A ! B

F

A

BF

A

BF

F

A

BF

A

BF

Figure 11.1 Basic Logic GatesJan2014 Computer Architecture 71

NKK-HUST

Tập đầy đủ

n  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 đó.

n  Một số ví dụ về tập đầy đủ: n  {AND, OR, NOT} n  {AND, NOT} n  {OR, NOT} n  {NAND} n  {NOR}

Jan2014 Computer Architecture 72

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

Nguyễn Kim Khánh DCE-HUST 19

NKK-HUST

Sử dụng cổng NAND

11.2 / GATES 369

Here we introduce a common term: we say that to assert a signal is to cause a signal line to make a transition from its logically false (0) state to its logically true (1) state. The true (1) state is either a high or low voltage state, depending on the type of electronic circuitry.

Typically, not all gate types are used in implementation. Design and fabrication are simpler if only one or two types of gates are used. Thus, it is important to identify functionally complete sets of gates. This means that any Boolean function can be imple-mented using only the gates in the set. The following are functionally complete sets:

• AND, OR, NOT • AND, NOT • OR, NOT • NAND • NOR

It should be clear that AND, OR, and NOT gates constitute a functionally complete set, because they represent the three operations of Boolean algebra. For the AND and NOT gates to form a functionally complete set, there must be a way to synthesize the OR operation from the AND and NOT operations. This can be done by applying DeMorgan’s theorem:

A + B = A # BA OR B = NOT ((NOT A) AND (NOT B))

Similarly, the OR and NOT operations are functionally complete because they can be used to synthesize the AND operation.

Figure 11.2 shows how the AND, OR, and NOT functions can be implemented solely with NAND gates, and Figure 11.3 shows the same thing for NOR gates. For this reason, digital circuits can be, and frequently are, implemented solely with NAND gates or solely with NOR gates.

A

A A

B

A

B

A

B

A+B

A BA B

Figure 11.2 Some Uses of NAND Gates

Jan2014 Computer Architecture 73

NKK-HUST

Sử dụng cổng NOR

370 CHAPTER 11 / DIGITAL LOGIC

With gates, we have reached the most primitive circuit level of computer hardware. An examination of the transistor combinations used to construct gates departs from that realm and enters the realm of electrical engineering. For our pur-poses, however, we are content to describe how gates can be used as building blocks to implement the essential logical circuits of a digital computer.

11.3 COMBINATIONAL CIRCUITS

A combinational circuit is an interconnected set of gates whose output at any time is a function only of the input at that time. As with a single gate, the appearance of the input is followed almost immediately by the appearance of the output, with only gate delays.

In general terms, a combinational circuit consists of n binary inputs and m binary outputs. As with a gate, a combinational circuit can be defined in three ways:

• Truth table: For each of the 2n possible combinations of input signals, the binary value of each of the m output signals is listed.

• Graphical symbols: The interconnected layout of gates is depicted. • Boolean equations: Each output signal is expressed as a Boolean function of

its input signals.

Implementation of Boolean Functions

Any Boolean function can be implemented in electronic form as a network of gates. For any given function, there are a number of alternative realizations. Consider the Boolean function represented by the truth table in Table 11.3. We can express this func-tion by simply itemizing the combinations of values of A, B, and C that cause F to be 1:

F + ABC + ABC + ABC (11.1)

A A

A

B

A

B

A (A+B)

BA+B

A B

Figure 11.3 Some Uses of NOR Gates

Jan2014 Computer Architecture 74

NKK-HUST

Một số ví dụ vi mạch logic 20-34 CHAPTER 20 / DIGITAL LOGIC

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC 4B 4A 4Y 3B 3A 3Y

1A 1B 1Y 2A 2B 2Y GND

7400

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC 4B 4A 4Y 3B 3A 3Y

1A 1B 1Y 2A 2B 2Y GND

7408

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC 2D 2C NC 2B 2A 2Y

1A 1B NC 1C 1D 1Y GND

7422

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC 1C 1Y 3C 3B 3A 3Y

1A 1B 2A 2B 2C 2Y GND

7411

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC 6A 6Y 5A 5Y 4A 4Y

1A 1Y 2A 2Y 3A 3Y GND

7404

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC 4B 4A 4Y 3B 3A 3Y

1A 1B 1Y 2A 2B 2Y GND

7432

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC NC H G NC NC Y

A B C D E F GND

7430

14 13 12 11 10 9 8

1 2 3 4 5 6 7

VCC 4B 4A 4Y 3B 3A 3Y

1A 1B 1Y 2A 2B 2Y GND

7486

Figure 20.32 Some SSI Chips. Pin layouts from The TTL Data Book for Design Engineers,copyright © 1976 Texas Instrument Incorporated.Jan2014 Computer Architecture 75

NKK-HUST

2.4. Mạch tổ hợp n  Mạch logic là mạch bao gồm:

n  Các đầu vào (Inputs) n  Các đầu ra (Outputs) n  Đặc tả chức năng (Functional specification) n  Đặc tả thời gian (Timing specification)

n  Các kiểu mạch logic: n  Mạch logic tổ hợp (Combinational Logic)

n  Mạch không nhớ n  Đầu ra được xác định bởi các giá trị hiện tại của đầu vào

n  Mạch logic dãy (Sequential Logic) n  Mạch có nhớ n  Đầu ra được xác định bởi các giá trị trước đó và giá trị hiện tại

của đầu vào Jan2014 Computer Architecture 76

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

Nguyễn Kim Khánh DCE-HUST 20

NKK-HUST

Mạch tổ hợp

n  Mạch tổ hợp là mạch logic trong đó đầu ra chỉ phụ thuộc đầu vào ở thời điểm hiện tại.

n  Là mạch không nhớ và được thực hiện bằng các cổng logic cơ bản

n  Mạch tổ hợp có thể được định nghĩa theo ba cách: n  Bảng thật n  Dạng sơ đồ n  Phương trình Boole

Jan2014 Computer Architecture 77

NKK-HUST

Ví dụ

CABBCACBAF ++=

A B C F 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 1 1 0 0 1 0

11.3 / COMBINATIONAL CIRCUITS 371

There are three combinations of input values that cause F to be 1, and if any one of these combinations occurs, the result is 1. This form of expression, for self-evident reasons, is known as the sum of products (SOP) form. Figure 11.4 shows a straightforward implementation with AND, OR, and NOT gates.

Another form can also be derived from the truth table. The SOP form expresses that the output is 1 if any of the input combinations that produce 1 is true. We can also say that the output is 1 if none of the input combinations that produce 0 is true. Thus,

F = 1A B C2 # 1A B C2 # 1A B C2 # 1A B C2 # 1A B C2This can be rewritten using a generalization of DeMorgan’s theorem:

(X # Y # Z) = X + Y + Z

Table 11.3 A Boolean Function of Three Variables

A B C F

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 0

A B C

F

Figure 11.4 Sum-of-Products Implementation of Table 11.3

Jan2014 Computer Architecture 78

NKK-HUST

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

n  2n đầu vào dữ liệu n  n đầu vào chọn n  1 đầu ra n  Đầu vào chọn (S) xác định đầu vào nào (D) sẽ được nối với đầu ra (F).

S2 S1 F

0 0 1 1

0 1 0 1

D0 D1 D2 D3

380 CHAPTER 11 / DIGITAL LOGIC

NAND AND NOR IMPLEMENTATIONS Another consideration in the implementation of Boolean functions concerns the types of gates used. It is sometimes desirable to implement a Boolean function solely with NAND gates or solely with NOR gates. Although this may not be the minimum-gate implementation, it has the advantage of regularity, which can simplify the manufacturing process. Consider again Equation (11.3):

F = B(A + C)

Because the complement of the complement of a value is just the original value,

F = B(A + C) = (AB + (BC)

Applying DeMorgan’s theorem,

F = (AB)•(BC)

which has three NAND forms, as illustrated in Figure 11.11.

Multiplexers

The multiplexer connects multiple inputs to a single output. At any time, one of the inputs is selected to be passed to the output. A general block diagram representation is shown in Figure 11.12. This represents a 4-to-1 multiplexer. There are four input lines, labeled D0, D1, D2, and D3. One of these lines is selected to provide the

AB

BC

F

Figure 11.11 NAND Implementation of Table 11.3

D0

D1

D2

S2 S1

D3

F4-to-1MUX

Figure 11.12 4-to-1 Multiplexer Representation

Jan2014 Computer Architecture 79

NKK-HUST

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

11.3 / COMBINATIONAL CIRCUITS 381

output signal F. To select one of the four possible inputs, a 2-bit selection code is needed, and this is implemented as two select lines labeled S1 and S2.

An example 4-to-1 multiplexer is defined by the truth table in Table 11.7. This is a simplified form of a truth table. Instead of showing all possible combinations of input variables, it shows the output as data from line D0, D1, D2, or D3. Figure 11.13 shows an implementation using AND, OR, and NOT gates. S1 and S2 are connected to the AND gates in such a way that, for any combination of S1 and S2, three of the AND gates will output 0. The fourth AND gate will output the value of the selected line, which is either 0 or 1. Thus, three of the inputs to the OR gate are always 0, and the output of the OR gate will equal the value of the selected input gate. Using this regular organization, it is easy to construct multiplexers of size 8-to-1, 16-to-1, and so on.

Multiplexers are used in digital circuits to control signal and data routing. An example is the loading of the program counter (PC). The value to be loaded into the program counter may come from one of several different sources:

D0

D1

D2

D3

S1S2

F

Figure 11.13 Multiplexer Implementation

Table 11.7 4-to-1 Multiplexer Truth Table

S2 S1 F

0 0 D0

0 1 D1

1 0 D2

1 1 D3

Jan2014 Computer Architecture 80