Học phần học trước: IT1010 THĐC 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
Trang 15 September 2009 Bài giảng Kiến trúc máy tính
KIẾN TRÚC MÁY TÍNH
Computer Architecture
Nguyễn Kim Khánh, PhD in Computer Engineering
Bộ môn Kỹ thuật máy tính Viện Công nghệ thông tin và Truyền thông School 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
e-mail: khanhnk@mail.hut.edu.vn
NKK-HUT
Giới thiệu học phần
các ngành công nghệ thông tin từ học
kỳ 5
Học phần học trước: IT1010 (THĐC)
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
Trang 25 September 2009 Bài giảng Kiến trúc máy tính 5
Tài liệu tham khảo chính
1 William Stallings - Computer Organization and
Architecture – Designing for Performance – 2003 (6 th
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
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 chung
Chương 2 Cơ bản về logic số
Chương 3 Tổng quan về hệ thống máy tính
Chương 4 Kiến trúc tập lệnh
Chương 5 Số học máy tính
Chương 6 Bộ xử lý trung tâm
Chương 7 Bộ nhớ máy tính
Chương 8 Hệ thống vào-ra
Chương 9 Máy tính song song
Trang 35 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 1
GIỚI THIỆU CHUNG
Nguyễn Kim Khánh
Trườ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ính 1.2 Kiến trúc máy tính
1.3 Sự phát triển của máy tính 1.4 Hiệu năng máy tính
Nội dung
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
NKK-HUT
Máy tính
Trang 45 September 2009 Bài giảng Kiến trúc máy tính 13
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
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
Máy tính để bàn (Desktop)
Máy tính xách tay (Laptop)
dụng bộ xử lý Intel 8088
bộ xử lý Motorola 68000
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
Client/Server (Khách hàng/Người phục vụ)
USD
Máy chủ (Server)
Trang 55 September 2009 Bài giảng Kiến trúc máy tính 17
NKK-HUT
thiết bị đó làm việc
Ví dụ:
Điện thoại di động
Máy ảnh số
Bộ điều khiển trong máy giặt, điều hoà nhiệt độ
Router – bộ định tuyến trên mạng
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
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)
NKK-HUT
Kiến trúc máy tínhbao 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
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
Trang 65 September 2009 Bài giảng Kiến trúc máy tính 21
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
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
Điều khiển hoạt động của máy tính và xử lý
dữ liệu
chương trình và dữ liệu đang được sử dụng
đổi thông tin giữa máy tính với bên ngoài
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.
Trang 75 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ính
Thế 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
Electronic 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ử
NKK-HUT
Bộ nhớ chỉ lưu trữ dữ liệu
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 (tiếp)
NKK-HUT
Đèn điện tử
Trang 85 September 2009 Bài giảng Kiến trúc máy tính 29
ENIAC (tiếp)
5 September 2009 Bài giảng Kiến trúc máy tính 30
Princeton Institute for Advanced Studies
Được bắt đầu từ 1947, hoàn thành1952
Do John von Neumann thiết kế
Được xây dựng theo ý tưởng “chương trình được lưu trữ” (stored-program
concept) của von Neumann/Turing (1945)
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ệu
Bộ nhớ chính được đánh địa chỉ theo từng ngăn nhớ, không phụ thuộc vào nội dung của nó
ALU thực hiện các phép toán với số nhị phân
Đơn vị điều khiển nhận lệnh từ bộ nhớ, giải mã
và thực hiện lệnh một cách tuần tự
Đơn vị điều khiển điều khiển hoạt động của các thiết bị vào-ra
Trở thành mô hình cơ bản của máy tính
Đặ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
Trang 95 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
NKK-HUT
Các máy tính thương mại ra đời
Corporation
Nhanh hơn
Bộ nhớ lớn hơn
NKK-HUT
UNIVAC I
Trang 105 September 2009 Bài giảng Kiến trúc máy tính 37
UNIVAC II
5 September 2009 Bài giảng Kiến trúc máy tính 38
Hãng IBM
Máy tính lưu trữ chương trình đầu tiên của IBM
Sử dụng cho tính toán khoa học
Cá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
Corporation) máy tính mini đầu tiên
Máy tính dùng transistor
Trang 115 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)
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
NKK-HUT
Luật Moore
Gordon Moore – người đồng sáng lập Intel
Số transistors trên chip sẽ gấp đôi sau 18 tháng
Giá thành của chip hầu như không thay đổi
Mậ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
Trang 125 September 2009 Bài giảng Kiến trúc máy tính 45
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
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)
Trang 135 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
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, RAM
Các bộ vi điều khiển(Microcontroller): máy tính chuyên dụng được chế tạo trên 1 chip
Máy tính dùng vi mạch VLSI/ULSI
NKK-HUT
Ví dụ máy chủ HP
Trang 145 September 2009 Bài giảng Kiến trúc máy tính 53
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
2 Sự phát triển của bộ vi xử lý
1971: bộ vi xử lý 4-bit Intel 4004
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
4004
Bộ vi xử lý đầu tiên
4-bit
8080
Bộ vi xử lý đa năng đầu tiên
8-bit
Sử dụng trong PC đầu tiên – Altair
8086
5MHz – 29,000 transistors
16-bit
8088 (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-bit
Hỗ trợ đa nhiệm
80486
Tăng cường bộ nhớ cache trên chip
Đường ống lệnh
Có bộ đồng xử lý toán trên chip
Pentium
Siêu vô hướng
Bus dữ liệu 64-bit
Đa lệnh được thực hiện song song
Pentium Pro
Tăng cường tổ chức siêu vô hướng
Dự đoán rẽ nhánh
Phân tích luồng dữ liệu
Suy đoán đông
Trang 155 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 II
Công nghệ MMX
Xử lý đồ họa, video & audio
Pentium III
Thêm các lệnh xử lý dấu phẩy động cho đồ họa 3D
Pentium 4
Tăng cường xử lý số dấu phẩy động và multimedia
Duo Core: 2 bộ xử lý trên chip
Core 2: Kiến trúc 64-bit
Core 2 Quad – 3GHz – 820 triệu transistors
4 bộ xử lý trong 1chip
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
NKK-HUT
Intel 8080 - bộ vi xử lý 8-bit
NKK-HUT
Intel 80286 - bộ vi xử lý 16-bit
Trang 165 September 2009 Bài giảng Kiến trúc máy tính 61
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
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
Trang 175 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
người-máy
máy-máy
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
Hệ điều hành
Quản lý: nhiệm vụ, bộ nhớ, files, vào-ra
Lập lịch
….
Công cụ lập trình và chương trình dịch
Cá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 1000
1010 1111 0101 1000 0000 1001 1100 0110
1100 0110 1010 1111 0101 1000 0000 1001
0101 1000 0000 1001 1100 0110 1010 1111
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)
Trang 185 September 2009 Bài giảng Kiến trúc máy tính 69
CPI (Cycles Per Instruction)
Số chu ky cần thiết để thực hiện lệnh
execution time =
clock rate executed instructions × CPI
executed instructions execution time × clock rate
5 September 2009 Bài giảng Kiến trúc máy tính 70
executed instructions
MIPS (Million Instruction Per Second)
Số triệu lệnh được thực hiện trong 1 second
MIPS =
5 September 2009 Bài giảng Kiến trúc máy tính 71
NKK-HUT
10 6 ・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
1
MIPS= n
T・10 6
MIPS=
10 6 ・MIPS
clock 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 =
GFLOPS(10 9 ) TFLOPS(10 12 )
Trang 195 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,5ns CPI = 4 Æ 1 lệnh = 4x0,5ns = 2ns Vậ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,5ns
Æ CPI = 2,5
NKK-HUT
Hết chương 1