Tài liệu giảng dạy Kiến trúc máy tính
TRƢỜNG ĐẠI HỌC AN GIANG
KHOA KỸ THUẬT – CÔNG NGHỆ – MÔI TRƢỜNG
Tài liệu giảng dạy
KIẾN TRÚC MÁY TÍNH
ThS. Nguyễn Văn Đông
An Giang, 02/2016
Tài liệu giảng dạy “Kiến trúc máy tính”, do tác giả Nguyễn Văn Đông, công tác
tại Khoa Kỹ thuật – Công nghệ – Môi trường thực hiện. Tác giả đã báo cáo nội dung
và được Hội đồng Khoa học và đào tạo Khoa thông qua ngày 26/2/2016, và được
Hội đồng Khoa học và Đào tạo của trường Đại học An Giang thông qua ngày. . . . . . .
Tác giả biên soạn
Nguyễn Văn Đông
Trƣởng đơn vị
Trƣởng bộ môn
Hiệu trƣởng
An Giang, 02-2016
LỜI MỞ ĐẦU
Trong hệ thống kiến thức trang bị cho sinh viên chuyên ngành công nghệ thông
tin và kỹ thuật phần mềm, tài liệu Kiến trúc máy tính góp phần cung cấp những nội
dung chung nhất về nguyên lý hoạt động cũng như tổ chức một hệ thống máy tính.
Từ đó có thể tiếp cận các mô hình kiến trúc hiện đại đang được phát triển hiện nay.
Để phục vụ công tác giảng dạy và học tập, chúng tôi biên soạn tài liệu Kiến trúc
máy tính nhằm cung cấp tới người học các kiến thức cơ bản nhất về lĩnh vực này.
Chúng tôi xin chân thành cám ơn các thầy cô Bộ môn Công nghệ thông tin và Bộ
môn Kỹ thuật phần mềm đã cho những ý kiến đóng góp quý báu để tài liệu giảng dạy
được hoàn thiện hơn. Tài liệu giảng dạy này được biên soạn chia thành 5 chương.
Tuy rằng chúng tôi đã có nhiều cố gắng trong biên soạn nhưng chắc chắn tài liệu vẫn
còn nhiều thiếu sót, nên rất mong được bạn đọc cũng như các đồng nghiệp đóng góp
ý kiến để tài liệu ngày càng hoàn thiện, nhằm mục đích phục vụ tốt hơn cho việc dạy
và học tin học đang ngày càng phát triển ở nước ta.
Ngày 15 tháng 02 năm 2016
GV. biên soạn
Nguyễn Văn Đông
i
LỜI CAM KẾT
Tôi xin cam đoan đây là tài liệu giảng dạy của riêng tôi. Nội dung tài liệu giảng
dạy có xuất xứ rõ ràng.
An Giang, ngày 15 tháng 02 năm 2016
Ngƣời biên soạn
Nguyễn Văn Đông
ii
MỤC LỤC
CHƢƠNG 1: ĐẠI CƢƠNG....................................................................................... 1
1.1 TỔNG QUAN..................................................................................................... 1
1.2 HIỆU SUẤT ...................................................................................................... 2
1.2.1 Dẫn nhập....................................................................................................... 2
1.2.2 Đo đạc hiệu suất ........................................................................................... 3
1.3 BIỂU DIỄN HỆ SỐ............................................................................................ 7
1.4 BIỂU DIỄN SỐ NGUYÊN................................................................................ 9
1.4.1 Biểu diễn số nguyên không dấu.................................................................... 9
1.4.2 Biểu diễn số nguyên có dấu.......................................................................... 9
1.7 BIỂU DIỄN KÍ TỰ........................................................................................... 15
2.1 GIỚI THIỆU.................................................................................................... 19
2.2 TOÁN TỬ ....................................................................................................... 19
2.3 TOÁN HẠNG .................................................................................................. 21
2.3.1 Toán hạng thanh ghi................................................................................... 21
2.3.2 Toán hạng bộ nhớ....................................................................................... 21
2.3.3 Toán hạng trực tiếp..................................................................................... 22
2.3.4 Định dạng lệnh ........................................................................................... 23
2.3.5 Lệnh luận lý ............................................................................................... 26
2.3.6 Các lệnh rẽ nhánh....................................................................................... 27
2.4 GIẢI MÃ NGÔN NGỮ MÁY......................................................................... 28
3.1 GIỚI THIỆU.................................................................................................... 31
3.2 ĐƯỜNG DẪN DỮ LIỆU................................................................................ 31
3.4 BỘ ĐIỀU KHIỂN CHÍNH ............................................................................. 34
3.5 KỸ THUẬT ỐNG DẪN ................................................................................. 41
3.5.1 Tổng quan................................................................................................... 41
iii
3.5.2 Đường đi dữ liệu của kỹ thuật ống dẫn ..................................................... 43
3.5.3 Điều khiển trong kỹ thuật ống dẫn ............................................................ 54
CHƢƠNG 4: BỘ NHỚ ............................................................................................ 64
4.1 GIỚI THIỆU..................................................................................................... 64
4.2 BỘ NHỚ CACHE............................................................................................. 65
4.2.1 Tổng quan................................................................................................... 65
4.2.2 Truy cập bộ nhớ Cache............................................................................... 67
4.2.3 Xử lý thất bại cache.................................................................................... 68
4.2.4 Xử lý ghi..................................................................................................... 69
4.2.5 Thiết kế bộ nhớ hỗ trợ cache...................................................................... 69
4.3.1 Thay thế khối.............................................................................................. 73
4.3.2 Xác định khối trong cache.......................................................................... 76
4.3.3 Thay thế khối.............................................................................................. 77
4.3.4 Cache nhiều mức ....................................................................................... 78
5.1 GIỚI THIỆU.................................................................................................... 81
5.2 ĐĨA TỪ............................................................................................................ 81
5.3 BỘ NHỚ FLASH............................................................................................. 82
ĐIỀU HÀNH .......................................................................................................... 84
5.5.1 Ra lệnh cho thiết bị nhập xuất.................................................................... 85
5.5.2 Giao tiếp với bộ xử lý................................................................................. 85
5.5.3 Độ ưu tiên ngắt ........................................................................................... 86
5.5.4 Truyền dữ liệu giữa thiết bị và bộ nhớ ....................................................... 87
iv
DANH SÁCH HÌNH
Hình 1.1: Giải thuật Booth.......................................................................................12
Hình 1.2: Giải thuật thực hiện phép chia .................................................................13
Hình 2.1: Địa chỉ ô nhớ và dữ liệu tương ứng .........................................................21
Hình 3.1: Sơ đồ tổ chức tổng quát của MIPS...........................................................31
Hình 3.2: Đường dẫn dữ liệu của ba loại lệnh cơ bản..............................................33
Hình 3.3: Ba định dạng lệnh R-type, load và store, branch .....................................35
Hình 3.4: Các tín hiệu điều khiển trong hệ thống ....................................................36
Hình 3.5: Các tín hiệu điều khiển của các dạng lệnh...............................................37
Hình 3.6: Đường đi dữ liệu của dạng lệnh R-format ...............................................38
Hình 3.7: Đường đi dữ liệu của lệnh load................................................................39
Hình 3.8: Đường đi dữ liệu của lệnh beq.................................................................40
Hình 3.9: đường đi dữ liệu của lệnh jump ...............................................................41
Hình 3.10: Thực hiện tuần tự so với kỹ thuật ống dẫn.............................................42
Hình 3.11: Các giai đoạn thực thi một lệnh .............................................................43
Hình 3.12: Ba lệnh được thực thi trong kỹ thuật ống dẫn........................................44
Hình 3.13: Các thanh ghi ống dẫn............................................................................45
Hình 3.14: Giai đoạn duyệt lệnh của lệnh lw...........................................................46
Hình 3.15: Giai đoạn giải mã lệnh của lệnh lw........................................................47
Hình 3.16: Giai đoạn thực thi của lệnh lw ...............................................................48
Hình 3.17: Giai đoạn truy cập bộ nhớ của lệnh lw ..................................................49
Hình 3.18: Giai đoạn ghi dữ liệu vào thanh ghi.......................................................50
Hình 3.19: Kết hợp các giai đoạn của lệnh lw .........................................................51
Hình 3.20: Giản đồ ống dẫn biểu diễn bằng đa chu kỳ............................................52
Hình 3.21: Giản đồ ống dẫn đơn chu kỳ tương ứng với chu kỳ 5 của hình 3.20.....53
Hình 3.22: Các tín hiệu điều khiển trong kỹ thuật ống dẫn .....................................54
Hình 3.23: Các tín hiệu điều khiển của ba giai đoạn ống dẫn sau cùng...................57
Hình 3.24: Các tín hiệu điều khiển được nối vào các phần tương ứng....................57
Hình 4.1: Cấu trúc của cấp bậc bộ nhớ ....................................................................64
Hình 4.2: Bộ nhớ Cache trước và sau khi CPU tham khảo từ Xn ............................65
Hình 4.3: Ánh xạ trực tiếp từ bộ nhớ sang cache có 8 khối.....................................66
Hình 4.4: Bộ nhớ cache với lần lượt 9 địa chỉ được truy cập ..................................68
Hình 4.5: Ba cách tổ chức bộ nhớ khác nhau...........................................................70
Hình 4.6: Khối 12 được đặt vào cache tương ứng với ba mô hình..........................73
Hình 4.7: Cache 8 khối được chia thành tập hợp có 1,2,4,8 phần tử.......................74
Hình 4.8: Mô hình kết hợp theo tập hợp với tập hợp có bốn phần tử......................77
Hình 5.1: Hệ thống nhập/xuất điển hình..................................................................81
Hình 5.2: Thanh ghi trạng thái và thanh ghi nguyên nhân.......................................87
v
DANH SÁCH BẢNG
Bảng 1.1: Số nhị phân, thập phân và thập lục phân...................................................8
Bảng 1.2: Phép cộng 2 số được biểu diễn bằng phương pháp bù 2 .........................11
Bảng 1.3: Phép trừ 2 số (M−S) được biểu diễn bằng bù 2.......................................11
Bảng 2.1: Các thanh ghi và địa chỉ bộ nhớ trong MIPS...........................................20
Bảng 2.2: Tập lệnh vi xử lý MIPS ...........................................................................20
Bảng 2.3: Định dạng lệnh MIPS ..............................................................................26
Bảng 2.4: mã lệnh op của các lệnh MIPS ................................................................28
Bảng 2.5: các giá trị của trường funct với R-format................................................29
Bảng 3.1: Thiết lập các bit điều khiển ALU dựa vào ALUOp và trường funct.......34
Bảng 3.2: Tổng thời gian thực hiện của mỗi lệnh....................................................42
Bảng 3.3: Thiết lập các bit ALU control..................................................................55
Bảng 3.4: Các tín hiệu điều khiển tương ứng theo 3 giai đoạn sau cùng.................56
Bảng 4.1: So sánh giữa ba kỹ thuật trong cấp bậc bộ nhớ .......................................65
Bảng 4.2: CPU lần lượt truy cập 9 địa chỉ bộ nhớ ...................................................67
vi
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
ALU
AMAT
CISC
CPI
Tiếng Anh
Tiếng Việt
Algorithm logic unit
Average memory access time
Complex Instruction
Đơn vị luận lý và số học
Thời gian truy cập bộ nhớ trung bình
Tập lệnh máy tính phức tạp
Số chu kỳ xung nhịp thực thi lệnh
Bộ xử lý
Clock cycle per instruction
Central processing unit
Control unit
CPU
CU
Đơn vị điều khiển
DM
Data memory
Vùng nhớ dữ liệu
DMA
DRAM
EX
Direct memory access
Dynamic random access memory
Truy cập bộ nhớ trực tiếp
Bộ nhớ truy cập ngẫu nhiên động
Thực thi
Execution
Instruction decode
Instruction memory
Instruction fetch
Input/Output
ID
Giải mã lệnh
IM
Vùng nhớ lệnh
IF
Duyệt lệnh
I/O
Thiết bị nhập/xuất
Ít được sử dụng gần đây nhất
Truy cập bộ nhớ
LRU
MEM
MIPS
Least recently used
Memory
Million instructions per second
Triệu lệnh mỗi giây
Microprocessor without
Interlocked Pipeline Stages
Multiplexor
Bộ xử lý không đông bộ
kỹ thuật ống dẫn
Bộ điều hợp
MIPS
Mux
PC
Personal computer
Register
Máy tính cá nhân
Thanh ghi
Reg
Reduced Instruction
Set Computer
RISC
Tập lệnh máy tính rút gọn
SRAM
V
Static random access memory
Bộ nhớ truy cập ngẫu nhiên tĩnh
Bit hợp lý
Valid bit
WB
Write-back
Ghi kết quả trở lại
vii
NỘI DUNG
CHƢƠNG 1: ĐẠI CƢƠNG
Giới thiệu về lịch sử máy tính, cách phân loại máy tính, hiệu suất máy tính.
Biểu diễn số nguyên và số với dấu chấm động.
CHƢƠNG 2: TẬP LỆNH VI XỬ LÝ
Giới thiệu về tập lệnh vi xử lý MIPS: các loại toán hạng trong lệnh, định dạng
lệnh, các dạng lệnh khác nhau và cách giải mã ngôn ngữ máy.
CHƢƠNG 3: TỔ CHỨC BỘ XỬ LÝ
Giới thiệu khái niệm đường dẫn dữ liệu, cách tổ chức bộ tính toán và luận lý,
hoạt động của bộ điều khiển chính. Nguyên lý hoạt động của kỹ thuật ống dẫn.
CHƢƠNG 4: BỘ NHỚ
Trình bày tổng quan về nguyên lý hoạt động của bộ nhớ cache: truy cập bộ
nhớ, xử lý thất bại, xử lý ghi. Cách thức đo lường và phương pháp cải tiến hiệu
suất bộ nhớ cache.
CHƢƠNG 5: HỆ THỐNG LƢU TRỮ VÀ NHẬP – XUẤT
Giới thiệu về hệ thống lưu trữ và nhập xuất. Cấu tạo và nguyên lý hoạt động
của đĩa từ, bộ nhớ flash. Kết nối giữa bộ xử lý, bộ nhớ và thiết bị nhập – xuất.
Giao tiếp thiết bị nhập – xuất với bộ xử lý, bộ nhớ và hệ điều hành.
viii
KẾ HOẠCH GIẢNG DẠY
(lý thuyết: 30 tiết; thực hành: 0 tiết)
Nội dung
1.1 Tổng quan
Số tiết
1.2 Hiệu suất
2
1.3 Biểu diễn hệ số
Chương 1 1.4 Biểu diễn số nguyên
2
2
2
1.5 Các phép tính trên số nguyên
1.6 Biểu diễn số với dấu chấm động
1.7 Biểu diễn kí tự
2.1 Giới thiệu
2.2 Toán tử
2.3 Toán hạng
Chương 2
2
2
2.4 Giải mã ngôn ngữ máy
3.1 Giới thiệu
3.2 Đường dẫn dữ liệu
2
Chương 3 3.3 Tổ chức bộ tính toán và luận lý
3.4 Bộ điều khiển chính
2
2
2
4
3.5 Kỹ thuật ống dẫn
4.1 Giới thiệu
4.2 Bộ nhớ cache
4.3 Đo lường và cải tiến hiệu suất cache
5.1 Giới thiệu
5.2 Đĩa từ
5.3 Bộ nhớ flash
Chương 4
Chương 5
2
5.4 Kết nối giữa bộ xử lý, bộ nhớ và thiết bị
nhập – xuất
2
5.5 Giao tiếp thiết bị nhập – xuất với bộ xử lý,
bộ nhớ và hệ điều hành
Ôn tập và kiểm tra
2
Tổng
30
ix
CHƢƠNG 1
ĐẠI CƢƠNG
Mục đích: Giới thiệu tổng quan về lịch sử phát triển của máy tính, cách phân loại
máy tính hiện nay. Cách để đánh giá hiệu suất của máy tính. Sau đó trình bày biểu
diễn số nguyên không dấu và có dấu, các phép tính cơ bản trên số nguyên này. Trình
bày cách biểu diễn số với dấu chấm động, biểu diễn kí tự bằng bảng mã ASCII, bảng
mã UNICODE.
1.1 TỔNG QUAN
Sự ra đời của máy vi tính tạo cuộc cách mạng vĩ đại trong lịch sử văn minh nhân
loại. Hệ thống máy tính ngày nay có thể giúp chúng ta có những bước phát triển
mạnh mẽ, nâng cao năng suất lao động, tri thức cũng như khoa học công nghệ. Một
cách tổng thể, lịch sử phát triển của máy tính trải qua các giai đoạn sau:
Thế hệ máy tính thứ nhất (1946 – 1957): thế hệ này được đặc trưng bằng kỹ
thuật ống chân không (vacuum tube). Chiếc máy vi tính đầu tiên ENIAC (Electronic
Numerical Integrator And Computer) do Giáo sư Mauchly và học trò của ông Eckert
tại đại học pennsylvania bắt đầu thiết kế vào năm 1943 và được hoàn thành vào năm
1946. Đây là một máy vi tính khổng lồ với chiều dài 20 mét, cao 2,8 mét, năng lực
tính toán là 5000 phép cộng trong một giây.
Giáo sư toán học John Von Neumann lần đầu đưa ra khái niệm chương trình
được lưu trữ (stored-program concept) vào năm 1945. Đến năm 1946, ông cùng các
đồng nghiệp thiết kế máy tính IAS tại Princeton Institute for Advanced Studies. Máy
tính này gồm các thành phần: bộ nhớ dùng để lưu trữ chung cho cả dữ liệu và lệnh,
bộ số học – luận lý (ALU) thực hiện phép toán trên dữ liệu nhị phân, bộ điều khiển
được dùng để điều khiển thực thi lệnh trong bộ nhớ và hoạt động của hệ thống
nhập/xuất. Đây là một ý tưởng nền tảng cho các máy tính hiện đại ngày nay. Máy
tính này còn được gọi là máy tính Von Neumann.
Thế hệ thứ hai (1958-1964): thế hệ này bắt đầu bằng sự thay thế ống chân
không bằng transistor với ưu điểm là nhỏ hơn, giá thành rẻ hơn, tỏa nhiệt ít hơn.
Transistor được phát minh bởi công ty Bell Labs vào năm 1947 nhưng đến cuối thập
niên 50, máy tính thương mại dùng transistor mới xuất hiện trên thị trường. Ngoài ra,
ở thế hệ này các thành phần quan trọng trong máy tính như: bộ số học – luận lý, bộ
điều khiển cũng được thiết kế phức tạp hơn. Một số ngôn ngữ cấp cao được dùng để
lập trình như: FORTRAN năm 1956, COBOL năm 1959, ALGOL năm 1960) và
phần mềm hệ thống (system software) trong máy tính cũng được giới thiệu.
Thế hệ thứ ba (1965-1971): Thế hệ này bắt đầu bằng sự xuất hiện của mạch
tích hợp (integrated circuit ). Vi mạch này cho phép đặt một số transistor trên một
chip đơn. Các mạch tích hợp với mật độ thấp (SSI: Small Scale Integration) có thể
chứa vài chục linh kiện và mạch tích hợp với mật độ trung bình (MSI: Medium Scale
Integration) chứa hàng trăm linh kiện. Do những cải tiến lớn về công nghệ nên các
1
máy tính của thế hệ này trở nên nhỏ hơn, nhanh hơn và rẽ hơn các máy tính thế hệ
trước đó. Hệ điều hành và khả năng đa lập trình cũng đã xuất hiện.
Thế hệ thứ tư (1972 – ngày nay): thế hệ này đánh dấu bằng tiến bộ của kỹ
thuật mạch tích hợp. Với sự giới thiệu của mạch tích hợp mật độ cao (LSI: Large
Scale Integration) chứa hàng ngàn linh kiện được đặt trên một chip đơn, mạch tích
hợp mật độ rất cao (VLSI: Very Large Scale Integration) có thể đạt hơn 10 ngàn linh
kiện trên một chip và mạch tích hợp với mật độ siêu lớn (ULSI: Ultra Large Scale
Integration) có thể chứa hơn một triệu linh kiện. Đặc biệt thế hệ này có sự xuất hiện
của bộ nhớ bán dẫn (semiconductor memory) và bộ vi xử lý (microprocessor). Máy
tính cá nhân PC (Personal Computer) đầu tiên đã ra đời như Kenback-1. Các kỹ
thuật cải tiến tốc độ xử lý của máy tính không ngừng được phát triển: kỹ thuật ống
dẫn, kỹ thuật vô hướng, xử lý song song …
Ngày nay kỹ thuật máy tính được sử dụng trong nhiều lĩnh vực khác nhau từ các
thiết bị nhúng trong ngôi nhà thông minh, điện thoại đến những các siêu máy tính
(supercomputer). Trong các thiết bị này, nền tảng phần cứng tuy có khác nhau nhưng
một cách tổng quan có thể phân loại máy tính thành các loại như sau:
Máy tính cá nhân (Personal computer - PC): đây là loại được sử dụng phổ
biến nhất. Máy tính cá nhân được thiết kế để sử dụng cho mục đích có nhân có hiệu
suất tương đối tốt với chi phí thấp.
Máy chủ (Server): đây là loại máy tính hiện đại bao gồm các loại máy tính
lớn (mainframes, minicomputers và supercomputers) và chỉ được truy cập thông qua
mạng. Server thực hiện các luồng công việc lớn như: các ứng dụng tính toán khoa
học và kỹ thuật hoặc xử lý rất nhiều công việc như một Web server lớn. Mặc dù
không được gọi là supercomputer, nhưng các trung tâm dữ liệu (datacenter) trên
internet được dùng bởi các công ty lớn như eBay hay Google chứa hàng ngàn bộ vi
xử lý với bộ nhớ chính có dung lượng terabyte (1TB = 1024 GB) và hệ thống lưu trữ
lên đến petabyte (1PB = 1024 TB). Những hệ thống này bao gồm nhiều cụm
(cluster) máy tính lớn.
Máy tính nhúng (Embedded computer): được ứng dụng rộng lớn nhất trong
hầu hết các lĩnh vực. Loại này bao gồm các vi xử lý gắn trong xe hơi, hệ thống xử lý
trong điện thoại, các hệ thống xử lý trong video game hay tivi và hệ thống vi xử lý
trong máy bay hay tàu thủy hiện đại. Hệ thống nhúng này được thiết kế để chạy một
ứng dụng hoặc một tập các ứng dụng có liên quan, được tích hợp với phần cứng và
được xem như một hệ thống đơn.
1.2 HIỆU SUẤT (performance)
1.2.1 Dẫn nhập
Làm sao để có thể đo đạc, đánh giá hiệu suất (performance) và định ra được
những yếu tố quyết định đế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ủa1 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
2
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 đó có chúng ta) quan tâm.
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.
Định nghĩa hiệu suất: trước hết chúng ta xem xét hai khái niệm liên quan
.
Thời gian đáp ứng (response time) hay thời gian thực thi (execution time), là
thời gian từ khi bắt đầu đến khi kết thúc chương trình. Thời gian này bao gồm: thời
gian truy cập đĩa, thời gian truy cập bộ nhớ, thời gian thực thi CPU,…
.
Throughput: là tổng số các chương trình thực thi xong trong một đơn vị thời
gian.
Trước tiên, chúng ta đánh giá hiệu suất thông qua thời gian thực thi. Cực đại hóa
hiệu suất đồng nghĩa với tối thiểu hóa thời gian thực thi. Quan hệ giữa hiệu suất và
thời gian thực thi ở máy tính X sẽ là:
Ta nói máy tính X có hiệu suất cao hơn máy tính Y n lần đồng nghĩa với máy tính
X nhanh hơn máy tính Y n lần.
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ất15s, A nhanh hơn B bao nhiêu lần?
Ta biết rằng A nhanh hơn B n lần nếu:
15
10
Do đó:
1.5 Vậy máy tính A nhanh hơn máy tính B 1.5 lần
1.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 như:
thời gian theo xung nhịp (clock), thời gian thực thi (execution time), thời gian trôi
qua (elapsed time). 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...). Để đơn giản, chúng ta chỉ giới
hạn xem xét đối với CPU mà thôi.
3
Có thể đo đạc hiệu suất qua thời gian thực thi theo chu kỳ xung nhịp (clock cycle)
và thời gian chu kỳ xung nhịp (clock cycle time) như sau:
Thời gian thực thi
của một chương trình
Số chu kỳ xung nhịp
của chương trình
Thời gian chu kỳ
xung nhịp
hay:
Thời gian thực thi
của một chương trình
Với tần số xung nhịp (clock xung nhịp
(clock cycle).
S ủ ươ rì
=
Thí dụ: thời gian thực thi chương trình trên máy tính A, tần số 4 GHz, 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ố xung nhịp của máy B và vì vậy số chu kỳ xung
nhịp thực thi chương trình bị tăng lên 1,2 lần. Hãy xác định tần số xung nhịp của
máy B?
Đầu tiên, tính số chu kỳ xung nhịp cần để thực hiện chương trình trên máy A, ta
có:
Thời gian thực thi trên máy B được tính như sau:
Do đó, cần tăng gấp đôi tần số xung nhịp của máy B so với máy A để chương
trình thực thi trong 6s.
Ngoài ra, ta có thể tính thời gian thực thi chương trình dựa vào chỉ số CPI (clock
cycle per instruction): số chu kỳ xung nhịp trung bình cần thiết để thực thi một câu
lệnh. Khi đó số chu kỳ xung nhịp có thể được tính:
Số chu kỳ xung nhịp = (số lệnh của chương trình) × CPI
4
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ỳ xung
nhịp là 250 ps và đạt được CPI là 2,0 khi chạy chương trình P. Máy B có chu kỳ
xung nhịp là 500 ps và đạt được CPI bằng 1,2 khi chạy chương trình P. Máy nào thực
thi chương trình P nhanh hơn và nhanh hơn bao nhiêu lần ?
Do 2 máy có cùng kiến trúc tập lệnh nên số lệnh thực thi của chương trình P trên
2 máy này bằng nhau. Giả sử gọi số lệnh này là I. Ta có:
Số chu kỳ xung nhịpA = I × 2.0
Số chu kỳ xung nhịpB = I × 1.2
Do đó, thời gian thực thi trên mỗi máy:
Thời gian thực thiA = Số chu kỳ xung nhịpA × thời gian chu kỳ xung nhịpA
= I × 2.0 × 250 ps = 500 × I ps
Thời gian thực thiB = I × 1.2 × 500 ps = 600 × I ps
Như vậy, máy tính A nhanh hơn là:
Dựa trên chỉ số CPI, ta có công thức tính thời gian thực thi:
Thời gian thực thi = số lệnh × CPI × thời gian chu kỳ xung nhịp
hay:
Trong trường hợp tập lệnh được phân chia thành nhiều nhóm lệnh, khi đó hiệu
suất có thể tính toán theo nhóm lệnh như sau:
∑
Thí dụ: xét 1 máy tính có đặc điểm tập lệnh như sau:
CPI của nhóm lệnh
A
1
B
2
C
3
CPI
Khi biên dịch cùng 1 chương trình nguồn bằng 2 trình biên dịch khác nhau, ta
được 2 đoạn mã lệnh như sau:
Số lệnh của nhóm lệnh
Đoạn mã lệnh
A
2
B
1
C
2
1
2
4
1
1
5
Đ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 ?
Đoạn mã 1 thực hiện: 2 + 1 + 2 = 5 lệnh, trong khi đoạn mã 2 thực hiện là:
4 + 1 + 1 = 6 lệnh. Như vậy, đoạn mã 2 thực hiện nhiều lệnh hơn.
Để tính số chu kỳ xung nhịp cho mỗi đoạn mã dựa vào công thức:
∑
Do đó:
Vì thế đoạn mã 2 thực hiện nhanh hơn. CPI của mỗi đoạn được tính như sau:
Một chỉ số khác cũng được dùng để đánh giá hiệu suất, đó là MIPS (million
instructions per second) được xác định như sau:
S
Thí dụ: cũng với thí dụ vừa rồi, xét bảng số liệu sau:
Số lệnh (đơn vị: tỷ) của mỗi nhóm lệnh
Mã lệnh
A
5
B
1
C
1
Trình biên dịch 1
Trình biên dịch 2
10
1
1
giả sử máy trên có tần số xung nhịp là 4 GHz. Cho biết trình biên dịch 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?
Đầu tiên, tính thời gian thực thi đối với mỗi trình biên dịch theo công thức sau:
với:
∑
Vì vậy thời gian thực thi của từng compiler là:
6
Dựa vào thời gian thực thi thì ta thấy trình biên dịch 1 tạo ra chương trình thực thi
nhanh hơn trình biên dịch 2.
Bây giờ ta tính theo MIPS dùng công thức:
S
S
S
1.3 BIỂU DIỄN HỆ SỐ
Một số có dạng tổng quát (dk-1dk-2…d1d0)r và có giá trị:
V = dk-1 × rk-1 + dk-2 × rk-2 +…+ d1× r + d0
Với: k là số chữ số, r: hệ số (r = 2: hệ nhị phân, r =10: hệ thập phân,…), d là giá
trị của chữ số.
Ví dụ: biểu diễn số (1011)2
(1011)2=1×23+0×22+1×21+1
biểu diễn số (517)10
(517)10 = 5×102+1×101+7
Chuyển từ hệ nhị phân sang hệ thập phân:
Để chuyển một số nhị phân sang số thập phân thì số thập phân tương ứng được
xác định bằng (dn-1 × 2n-1) +…+ (d1 × 21) + d0
Ví dụ: (10011101)2 = 27+24+23+22+1 = 157
Chuyển từ hệ thập phân sang hệ nhị phân:
Để đổi số thập phân sang số nhị phân, thực hiện vòng lặp phép chia nguyên số
thập phân cho 2 đến khi nào thương số bằng 0 thì kết thúc. Khi đó, các số dư của
phép chia chính là số nhị phân cần tìm (ghi kết quả theo thứ tự từ dưới lên trên).
Ví dụ: đổi số 37 sang số nhị phân
Chia
37/2
18/2
9/2
Thương số
Số dư
18
9
1
0
1
0
0
1
4
4/2
2
2/2
1
1/2
0
Kết quả: 37 = (100101)2
7
Chuyển từ hệ nhị phân sang hệ thập lục phân (hexadecimal):
Hệ thập lục phân sử dụng 16 kí số: 0 – 9, A – F. Bảng 1.1 thể hiện số tương ứng
giữa số nhị phân, số thập phân và số thập lục phân.
Bảng 1.1: Số nhị phân, thập phân và thập lục phân
Hệ nhị phân
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Hệ thập phân
Hệ thập lục phân
0
1
0
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
11
12
13
14
15
A
B
C
D
E
F
Để chuyển đổi số nhị phân sang số thập lục phân thì mỗi chữ số thập lục phân sẽ
tương ứng với 4 bit của số nhị phân.
Ví dụ: đổi số nhị phân sau sang số thập lục phân:
1110 1011 0001 0110 1010 0111 1001 0100
nhóm 4 bit tương ứng từ phải sang trái tương ứng với các chữ số thập lục phân như
sau:
Kết quả: (1110 1011 0001 0110 1010 0111 1001 0100)2 = (EB16A794)16
Chuyển từ hệ thập lục phân sang hệ thập phân:
Để chuyển một số thập lục phân sang số thập phân thì số thập phân tương ứng
được xác định bằng (dn-1 × 16n-1) + (dn-2 ×16n-2) +…+ (d1 × 161) + d0
Ví dụ: đổi số (3BA4)16 sang số thập phân
(3BA4)16 = (3 × 163) + (11 × 162) + (10 × 161) + 4 = 15268
Chuyển từ hệ thập phân sang hệ thập lục phân:
Để đổi số thập phân sang số thập lục phân, thực hiện vòng lặp phép chia nguyên
số thập phân cho 16 đến khi nào thương số bằng 0 thì kết thúc. Khi đó, các số dư của
phép chia chính là số thập lục phân cần tìm (ghi kết quả theo thứ tự từ dưới lên trên).
Ví dụ: đổi số (422)10 sang số thập lục phân
8
Chia
422/16
26/16
1/16
Thương số
Số dư
26
1
6
A
1
0
Kết quả: (422)10 = (1A6)16
1.4 BIỂU DIỄN SỐ NGUYÊN
1.4.1 Biểu diễn số nguyên không dấu
Tất cả các số cũng như các kí tự trong máy vi tính đều được biểu diễn bằng các
chữ số nhị phân. Để biểu diễn các số nguyên không dấu, người ta dùng n bit. Tương
ứng với độ dài của số bit được sử dụng, ta có các khoảng giá trị xác định như sau:
Số bit
n bit
Khoảng giá trị
0…2n - 1
8 bit
0…255
16 bit
0.. 65535
1.4.2 Biểu diễn số nguyên có dấu
Biểu diễn bằng dấu và trị tuyệt đối (Sign-Magnitude Representation)
Để biểu diễn số nguyên có dấu n-bit có dạng an-1an-2…a1a0 thì sử dụng bit trái nhất
(an-1) làm bit dấu. Bit dấu bằng 0 thể hiện số dương và bằng 1 thể hiện số âm. Giá trị
được thể hiện bằng n ‒ 1 bit còn lại. Biểu diễn số +18 và −18 như sau:
+18 = 00010010
−18 = 10010010
Số nguyên cần biểu diễn có thể được xác định theo công thức sau:
Phương pháp này gây ra hai khó khăn cho tính toán. Thứ nhất, khi phải thực hiện
các phép cộng và phép trừ thì cần phải lưu ý đến dấu và độ lớn của hai số để thực
hiện chính xác. Thứ hai, theo phương pháp này thì số 0 có hai cách biểu diễn:
+0 = 00000000
−0 = 10000000
Điều này gây ra khó khăn khi phải xử lý các phép tính đối với số 0. Do vậy
phương pháp biểu diễn này ít được sử dụng trong bộ phận ALU của vi xử lý.
Biểu diễn bằng bù 2
Giống như phương pháp biểu diễn dấu và trị tuyệt đối, ở phương pháp này cũng
dùng bit trái nhất (leftmost) để xác định số âm hay số dương. Nếu bit này bằng 0 biểu
diễn số dương, ngược lại bit này bằng 1 biểu diễn số âm.
9
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Tài liệu giảng dạy Kiến trúc máy tính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
tai_lieu_giang_day_kien_truc_may_tinh.pdf

