1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình kiến trúc máy tính

159 519 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 159
Dung lượng 5,48 MB

Nội dung

Mục đích môn học Đối với chuyên ngành KTMT • Nắm vững các kiến thức cơ bản về tổ chức và hoạt động của máy tính số • Làm nền tảng để tìm hiểu cấu trúc kiến trúc + mạch logic của các phầ

Trang 1

Khoa KH & KT Máy tính

Bộ môn Kỹ thuật Máy tính

Phạm Tường Hải Nguyễn Quốc Tuấn

Trang 2

Kiến trúc Máy tính - Chap 01 2

Nội dung tóm tắt môn học

) Là môn học cơ sở ngành máy tính, giảngdạy cho cả chuyên ngành KTMT lẫn KHMT

) Cung cấp các kiến thức cơ bản về nguyên lýhoạt động và tổ chức ở các máy tính số

• Vấn đề đánh giá hiệu suất

Trang 3

Mục đích môn học

) Đối với chuyên ngành KTMT

• Nắm vững các kiến thức cơ bản về tổ chức và hoạt động của máy tính số

• Làm nền tảng để tìm hiểu cấu trúc (kiến trúc + mạch logic)

của các phần tử khác nhau trong một máy tính số

• Vận dụng để thiết kế, cải tạo, sửa chữa các hệ thống ứng dụng vi xử lý – vi điều khiển, hệ thống nhúng

) Đối với chuyên ngành KHMT

• Nắm vững các kiến thức cơ bản về tổ chức và hoạt động của máy tính số

• Vận dụng vào thiết kế, cải tạo các hệ thống phần mềm sao cho hoạt động hiệu quả, phù hợp với kiến trúc phần cứng

Trang 4

Kiến trúc Máy tính - Chap 01 4

Tài liệu tham khảo

) “Computer Organization and Design: the hardware/software interface”,

John L Hennessy & David A Patterson, Second Edition, MORGAN KAUFMANN PUBLISHERS, INC 1998

) “Computer Architecture: a quantitative approach”,

John L Hennessy & David A Patterson, Third Edition,

MORGAN KAUFMANN PUBLISHERS, INC 2002

Trang 5

Chương 1.

Trang 6

Kiến trúc Máy tính - Chap 01 6

1.1 Dẫn nhập

) Sự ra đời và phát triển của máy tính dẫn đến cái gọi là

văn minh của loài người (trước đó lần lượt là cách mạng nông nghiệp , cách mạng kỹ nghệ)

) Kết quả là sức mạch trí tuệ của nhân loại được nhân lênđáng kể, khoa học – kỹ thuật phát triển mạnh mẽ vàvươn đến những giới hạn mới

) Một số thành tựu đạt được trong thời gian qua giốngnhư chuyện viễn tưởng

• Automatic teller machinesComputers in automobiles

• Laptop computersHuman genome project

• World Wide Web

Trang 7

) Phần cứng máy tính tiến bộ cho phép các nhà lập trìnhviết nên những phần mềm ứng dụng kỳ diệu, và làm chomáy tính thâm nhập nhanh chóng vào mọi ngóc ngáchcủa đời sống hiện đại

) Trong tương lai những điều viễn tưởng sẽ là: một xã hộikhông cần đến tiền mặt, các xa lộ thông minh tự động

hóa, ubiquitous computing, …

) Các nhà lập trình thành công luôn biết quan tâm tới tốc

độ của các chương trình do mình viết ra

) Trong thập niên 60 và 70, hạn chế chủ yếu đối với hiệusuất của máy tính nằm ở kích thước của bộ nhớ

Ö Tối thiểu hóa mã lệnh để chương trình thực thi nhanh hơn

Trang 8

Kiến trúc Máy tính - Chap 01 8

) Trong gần 20 năm qua, những tiến bộ trong thiết kế máytính và công nghệ bộ nhớ đã xóa đi hạn chế của bộ nhớkích thước nhỏ

Ö Muốn chương trình thực thi nhanh hơn cần hiểu và vận dụng

được bản chất phân cấp ở bộ nhớ cũng như bản chất song song

Trang 9

1.2 Bên dưới của chương trình

) Máy tính là bước phát triển kế tiếp của các mạch logic

) Thông tin trên máy tính được biểu diễn bởi các ký số nhịphân hay bit (b inary dig it)

) Máy tính hoạt động tuân theo các chỉ thị của chúng ta Thuật ngữ dùng để gọi các chỉ thị riêng lẻ là câu lệnh

(instruction)

) Mỗi câu lệnh là 1 chuỗi xác định các bit, (giống như 1 sốnhị phân) mà máy tính có thể hiểu được

• TD 1000110010100000 yêu cầu máy tính cộng 2 số nguyên

) Những nhà lập trình đầu tiên truyền đạt chỉ thị đến máytính thông qua các con số nhị phân nói trên

• Đây là công việc hết sức tẻ nhạt

Trang 10

Kiến trúc Máy tính - Chap 01 10

) Công cụ lập trình dùng các số nhị phân để viết ra các chỉthị cho máy tính được gọi là ngôn ngữ máy (machine language)

) Con người nhanh chóng thay thế các số nhị phân bởi

hiệu gần với cách suy nghĩ của con người hơn

• TD sử dụng add A, B thay thế cho 1000110010100000

) Lúc đầu con người dùng tay để dịch các ký hiệu trên ra

số nhị phân rồi đem thực thi trên máy tính

) Sau đó, con người phát triển một chương trình trợ giúpviệc dịch nói trên: assembler

) Công cụ lập trình dùng các ký hiệu gợi nhớ nhằm viết racác chỉ thị cho máy tính được gọi là hợp ngữ (assemly language)

Trang 11

) Mỗi dòng trong hợp ngữ là 1 câu lệnh để máy tính thựcthi Lập trình bằng hợp ngữ buộc người lập trình phảisuy nghĩ hành động như một máy tính

• Cấp hành động như máy tính gọi là cấp thấp (low level)

• Ngôn ngữ máy và hợp ngữ là các ngôn ngữ cấp thấp (low level language)

) Theo hướng trên, người ta lại đưa ra các ký hiệu gầnvới suy nghĩ của con người và tạo nên các ngôn ngữ

• TD A + B thay cho add A, B

) Sử dụng chương trình để dịch ngôn ngữ cấp cao sang hợp ngữ: chương trình dịch (compiler)

Trang 12

Kiến trúc Máy tính - Chap 01 12

Chương trình

viết bằng C

Ngôn ngữ máy Chương trình

dạng hợp ngữ

Compiler

Assembler

Trang 13

) Ngôn ngữ cấp cao mang lại nhiều lợi ích quan trọng

• Cho phép người lập trình suy nghĩ dưới dạng ngôn ngữ tự nhiên

(Anh ngữ, biểu thức toán, …): FORTRAN, COBOL, LISP

• Tăng đáng kể hiệu năng lập trình: chương trình ngắn hơn, sáng

sủa và dễ hiểu hơn

• Ngôn ngữ cấp cao độc lập đối với máy tính

) Khả năng tái sử dụng chương trình mang lại hiệu quảcao hơn là viết toàn bộ chương trình từ đầu

Ö trình con, thư viện, thư việc các trình con xuất/nhập

) Người ta nhận thấy việc thực thi các chương trình trênmáy tính sẽ hiệu quả hơn nếu có 1 chương trình đặcbiệt giám sát thực thi cho các chương trình trên

Ö Hệ điều hành (operating system)

Trang 14

Kiến trúc Máy tính - Chap 01 14

) Hệ điều hành là chương trình quản lý các tài nguyên củamáy tính hỗ trợ tốt nhất cho việc thực thi của cácchương trình khác nhau trên máy tính

) Phần mềm có thể được phân loại theo tính năng sửdụng

• Các chương trình cung cấp dịch vụ chung cho các chương trình

khác được gọi là phần mềm hệ thống (systems software)

Ö hệ điều hành, chương trình dịch, …

• Phần mềm ứng dụng (applications software)

là các phần mềm cung cấp dịch vụ cho các người sử dụng máy tính (users)

Ö word, excel, photoshop, …

Trang 15

1.3 Bên trong vỏ máy

) Khảo sát một máy tính để bàn

Bàn phím

Màn hình

Chuột Webcam

Thùng máy

Trang 16

Kiến trúc Máy tính - Chap 01 16

) Chuột

Trang 17

) Màn hình & card điều khiển màn hình

• Hình ảnh được thể hiện dưới dạng ma trận các phần tử ảnh

(picture element) hay pixel

• Mỗi pixel đươc biểu diễn bởi 1 ma trận bit còn gọi là bit map

• Tùy thuộc vào kích thước và độ phân giải của màn hình, ma trận

raster refresh buffer

hay frame buffer

Trang 18

Kiến trúc Máy tính - Chap 01 18

Trang 20

Kiến trúc Máy tính - Chap 01 20

) Bộ nhớ (memory)

• Chứa chương trình thực thi và các dữ liệu cần thiết trong quá

trình thực thi

• Có 2 loại bộ nhớ: ROM và RAM

• Trên motherboard có 2 loại bộ nhớ RAM

* Bộ nhớ chính (công nghệ DRAM) có dung lượng lớn chứa chương trình và dữ liệu thực thi

* Bộ nhớ Cache (công nghệ SRAM) có tốc độ nhanh, đóng vai trò bộ đệm cho bộ nhớ chính

Trang 21

) Bộ xử lý (processor)

• Là phần tử tích cực nhất của máy tính số

• Đôi khi còn gọi là CPU (central processing unit)

• Gồm 2 khối chính: khối dữ liệu (datapath) và

khối điều khiển (control)

• Khối dữ liệu thực hiện các phép tính

• Khối điều khiển ra lệnh cho khối dữ liệu, bộ

nhớ, các thiết bị xuất/nhập, thực hiện cái mà câu lệnh của chương trình yêu cầu

Trang 22

Kiến trúc Máy tính - Chap 01 22

) Đĩa cứng

Trang 23

Đèn bán dẫn (Transistor) 1965

1

Đèn điện tử (Vacuum tube) 1951

Hiệu quả/Giá thành Công nghệ sử dụng

Trang 24

Kiến trúc Máy tính - Chap 01 24

) Qui trình chế tạo mạch tích hợp

Slicer

20 to 30 processing steps

Dicer Die

tester

Bond die

to package

Part tester Ship to customers

Silicon ingot

Packaged dies

Blank wafers

Patterned wafers Individual dies

Tested dies

Tested packaged dies

Trang 25

Khoa KH & KT Máy tính

Trang 26

Kiến trúc Máy tính - Chap 02 2

Tài liệu tham khảo

Computer Organization and Design: the hardware/software interface ”,

John L Hennessy & David A Patterson, Second Edition,

MORGAN KAUFMANN PUBLISHERS, INC 1998

Computer Architecture: a quantitative approach ”,

John L Hennessy & David A Patterson, Third Edition,

MORGAN KAUFMANN PUBLISHERS, INC 2002

Trang 27

Chương 2.

Trang 28

Kiến trúc Máy tính - Chap 02 4

2.1 Dẫn nhập

đến hiệu suất của 1 máy tính ?

Lý do chính để khảo sát về hiệu suất là vì hiệu suất của

phần cứng máy tính thường là yếu tố mấu chốt quyết

định đến tính hiệu quả trong hoạt động của 1 một hệ

thống bao gồm cả phần cứng lẫn phần mềm

Hiệu suất luôn là một thuộc tính quan trọng trong việc

lựa chọn, mua bán các máy tính

được cả người bán lẫn người mua quan tâm ! Hiệu suất càng được các nhà thiết kế máy tính (trong đó

Trang 29

Việc đánh giá hiệu suất máy tính không hề đơn giản

• Hiệu suất không chỉ có được do các cải tiến phần cứng mà cũng

có thể nhờ vào các phần mềm thông minh hay cả hai

• Tùy góc độ ứng dụng khác nhau, hiệu suất hoàn toàn có thể được đánh giá theo những phương cách, những chỉ số khác nhau

Ở góc độ nhà thiết kế máy tính (phần cứng/phần mềm),

chúng ta cần nắm rõ

• Các vấn đề liên quan đến việc đánh giá hiệu suất máy tính

• Hoạt động của các thành phần khác nhau (phần cứng/phần mềm) và ảnh hưởng của chúng đến hiệu suất

• Trong mỗi ứng dụng cụ thể, xác định phương pháp đánh giá hiệu suất phù hợp

Trang 30

Kiến trúc Máy tính - Chap 02 6

Định nghĩa về hiệu suất

• Khi ta nói “máy tính này có hiệu suất cao hơn máy tính kia”, điều

đó mang ý nghĩa gi ?

• Chúng ta xem xét thí dụ sau đây

thử xác định máy bay có hiệu suất cao nhất trong trường hợp:

Máy bay có tốc độ cao nhất ? Máy bay có dung lượng lớn nhất ? Máy bay chuyên chở nhanh nhất ?

644 8720

146 Douglas DC-8-50

1350 4000

132 BAC/Sud Concorde

610 4150

470 Boeing 747

610 4630

375 Boeing 777

Cruising speed (m.p.h) Cruising range (mile)

Passenger capacity Airplane

Trang 31

• Khi chúng ta chạy cùng 1 chương trình trên 2 máy trạm

(workstation) khác nhau, ta kết luận máy nhanh hơn là máy có thể kết thúc thực thi chương trình sớm hơn

(execution time), là thời gian từ khi bắt đầu đến khi kết thúc chương trình

• Khi so sánh 2 hệ thống máy tính với nhau, ta kết luận hệ thống nhanh hơn là hệ thống hoàn tất thực thi nhiều chương trình hơn trong cùng một ngày

một đơn vị thời gian

• Thay đổi nào sau đây ảnh hưởng đến thời gian thực thi, throughput hoặc cả hai ?

Thay CPU hiện hành bằng 1 CPU nhanh hơn Tăng số lượng CPU trong 1 máy chủ (server) có nhiều CPU (giả sử

Trang 32

Kiến trúc Máy tính - Chap 02 8

• Thí dụ: nếu máy tính A thực thi chương trình mất 10s và máy

tính B thực thi cùng chương trình mất 15s, A nhanh hơn B bao nhiêu lần ?

X time Execution

X e

n Y

e Performanc X

e Performanc

=

Trang 33

2.2 Đo đạc hiệu suất

Thời gian được sử dụng làm thước đo cho hiệu suất

máy tính

Tuy nhiên thời gian ở đây được định nghĩa theo nhiều

cách khác nhau, tùy theo mục đích đo đạc

• Thời gian theo đồng hồ

chương trình

Thời gian thực thi chương trình bao gồm thời gian thực

thi bởi CPU lẫn các thiết bị khác (bộ nhớ, đĩa cứng,

v.v )

Trang 34

Kiến trúc Máy tính - Chap 02 10

time )

• User CPU time

• System CPU time

điều hành Unix

90.7u 12.9s 2 : 39 65%

user CPU time system CPU time elapsed time phần trăm thời gian có ích

Trang 35

2.3 Liên quan đến các hệ đo

hay

Thí dụ:

Thời gian thực thi chương trình trên máy tính A , tần số 400MHz, là 10s Chúng ta muốn thiết kế máy tính B có thể thực thi chương trình trên trong 6s Để đạt được điều này, cần phải tăng tần số clock của máy B và vì vậy số chu kỳ clock

thực thi chương trinh bị tăng lên 1,2 lần.

Hãy xác định tần số clock của máy B ?

CPU execution time

CPU clock cycles

CPU execution time

CPU clock cycles for a program

Clock rate

Trang 36

Kiến trúc Máy tính - Chap 02 12

trung bình cần thiết để thực thi 1 câu lệnh

Thí dụ:

Xét 2 máy tính A và B có cùng kiến trúc tập lệnh Máy A có chu

kỳ clock là 1ns và đạt được CPI là 2,0 khi chạy chương trình P Máy B có chu kỳ clock là 2ns và đạt được CPI bằng 1,2 khi

Trang 37

Tính CPU time theo CPI

Đơn vị đo

Clock rate

giây

số nguyên

số nguyên giây

Trang 38

Kiến trúc Máy tính - Chap 02 14

Tập lệnh có thể được phân chia thành các nhóm lệnh

Có thể tính toán hiệu suất

theo các nhóm lệnh

Thí dụ:

Xét 1 máy tính có đặc điểm tập lệnh như sau:

Khi biên dịch cùng 1 chương trình nguồn bằng 2 compiler khác

nhau, ta được 2 đoạn mã lệnh như sau

Đoạn mã nào thực hiện nhiều câu lệnh hơn ? chạy nhanh hơn ? Tính CPI cho từng đoạn mã lệnh ?

1

cycle clock

CPU

3 C

2 B

1 A

CPI Nhóm lệnh

1 1

4 Compiler 2

2 1

2 Compiler 1

C B

A

Số câu lệnh theo nhóm lệnh

Mã lệnh

Trang 39

Thí dụ:

Cũng với thí dụ vừa rồi, xét bảng số liệu sau

giả sử máy trên có tần số clock là 500MHz.

Cho biết đoạn mã nào thực thi nhanh hơn nếu tính theo

thời gian thực thi ? nếu tính theo MIPS ?

10 Compiler 2

2 1

5 Compiler 1

C B

A

Số câu lệnh (10 9 ) theo nhóm lệnh

Mã lệnh

Trang 40

Kiến trúc Máy tính - Chap 02 16

2.4 Chọn chương trình để đo

Tập hợp các chương trình tiêu biểu mà người sử dụng

Có thể đánh giá hiệu suất của 2 máy tính bằng cách đo

Trong thực tế, không phải người sử dụng máy tính nào

suất máy tính của mình

dựa vào các chương trình mà người ta hy vọng có thể làm workload trong một số trường hợp, các benchmark

• Các chương trình ngắn: érastosthène, puzzle, sort,

• Các nhân chương trình: Livermore, Linpack,

• Các ứng dụng thực tế: Spec, Splash,

• Các chương trình tổng hợp: Whetstone, Dhrystone,

Trang 41

2.5 So sánh và tổng hợp hiệu suất

Việc đo đạt hiệu suất được thực hiện trên một tập hợp

Kết quả tổng hợp phải có thể được sử dụng để so sánh

hiệu suất giữa nhiều máy tính với nhau

1

1

= n R n R

1

1

Trang 42

Kiến trúc Máy tính - Chap 02 18

Sử dụng giá trị trung bình nào cho thích hợp ?

Thí dụ:

bảng sau

So sánh hiệu suất các máy trên và cho biết chúng hơn

kém nhau bao nhiêu lần ?

2 5

3

C trình P2

4 1

2

C trình P1

Máy C Máy B

Máy A

Trang 43

Bài tập

2.1 , 2.2 , 2.3 , 2.4 2.10 , 2.13

2.15 , 2.18 2.26

Computer Organization and Design: the hardware/software interface ”,

John L Hennessy & David A Patterson, Second Edition,

MORGAN KAUFMANN PUBLISHERS, INC 1998

Trang 44

Khoa KH & KT Máy tính

Bộ môn Kỹ thuật Máy tính

Phạm Tường Hải Nguyễn Quốc Tuấn

Trang 45

Tài liệu tham khảo

) “Computer Organization and Design: the hardware/software interface”,

John L Hennessy & David A Patterson, Second Edition,

MORGAN KAUFMANN PUBLISHERS, INC 1998

) “Computer Architecture: a quantitative approach”,

John L Hennessy & David A Patterson, Third Edition,

MORGAN KAUFMANN PUBLISHERS, INC 2002

Trang 46

Kiến trúc Máy tính - Chap 03 3

Chương 3.

Trang 47

3.1 Dẫn nhập

) Kiến trúc của máy tính bao gồm 2 phần

• Kiến trúc phần cứng

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

) Cả 2 phần trên có mối quan hệ tương hỗ với nhau

) Có 2 cách để tiếp cận đến kiến trúc máy tính

Trang 48

Kiến trúc Máy tính - Chap 03 5

3.2 Phép toán

) Các máy tính đều có thể thực hiện các phép toán số học

) Xét câu lệnh sau (hợp ngữ MIPS)

add a , b , c

• Chỉ thị cho máy tính thực hiện phép toán cộng

• Phép toán trên chỉ có thể thực hiện với 3 toán hạng

) Nếu muốn thực hiện phép toán với nhiều toán hạng ?

• Phải dùng nhiều câu lệnh để chỉ thị

add a , b , c # the sum of b and c is placed in a add a , a , d # the sum of b, c and d is placed in a add a , a , e # the sum of b, c, d and e is placed in a

• Mỗi hàng dành để ghi 1 câu lệnh

• Phần văn bản đi theo ký hiệu # dành cho chú thích

Trang 49

) Việc cố định số lượng toán hạng trong câu lệnh giúp

đơn giản hóa đáng kể việc thiết kế mạch phần cứng

Trang 50

Kiến trúc Máy tính - Chap 03 7

Trang 51

3.3 Toán hạng

) Ở các chương trình viết bằng ngôn ngữ cấp cao, biến

) Đối với các câu lệnh (instruction), ngôn ngữ cấp thấp,

toán hạng thường được chứa trong các thanh ghi

) Kích thước thanh ghi ở bộ xử lý MIPS là 32 bit

Ö kích thước toán hạng trong các câu lệnh MIPS bị

giới hạn ở 32 bit, từ (word)

) Số lượng thanh ghi cũng giới hạn Bộ xử lý MIPS chỉ có

32 thanh ghi 32 bit tham gia vào các phép toán số học

) Nguyên tắc thiết kế 2

Càng nhỏ, càng nhanh

Ngày đăng: 21/07/2014, 19:02

TỪ KHÓA LIÊN QUAN

w