- Clock: Mạch xung nhịp đồng hồ hệ thống dùng để đồng bộ các thao tác xử lítrong và ngoài CPU theo các khoảng thời gian không đổi.- Có liên hệ thông tin với tất cả các đơn vị trong Bộ VX
Trang 1BÀI TẬP KIẾN TRÚC MÁY TÍNH
Trang 2I. Giới thiệu về CPU
1. CPU là gì ?
CPU (Central Processing Unit) được gọi là microprocessor hay processor –
là một đơn vị xử lý trung tâm, được xem như não bộ, một trong những phần tử cốtlõi nhất của máy vi tính
2. CPU ra đời từ đâu ?
Trong lịch sử phát triển của mình, chiếc máy tính đã phát triển từ một chiếcmáy chữ đơn thuần thành một thiết bị đóng vai trò căn bản trong phương thức màhàng triệu con người chúng ta làm việc, liên lạc, học tập, giải trí và còn nhiều môhình sử dụng khác nữa Việc giới thiệu chiếc máy tính cá nhân IBM đầu tiên năm
1981 đã đánh dấu một bước ngoặt cơ bản trong ngành công nghiệp điện toán
3. Giai đọan phát triển của CPU
a. Thập niên 70
Đây là dòng sản phẩm đầu tiên do Intel phát triển dùng cho các máy PC.IBM chính là nhà sản xuất máy tính cá nhân đầu tiên sử dụng loại CPU này.Những CPU tiêu biểu là seri 8086 (sản xuất năm 1978) và seri 8088 (sản xuất năm1979) có thể truy cập được 1MB bộ nhớ
Vi xử lý thế hệ thứ 1
b. Thập niên 80
Được giới thiệu năm 1982, CPU 80286 của Intel một lần nữa đã khẳng địnhđược vị thế của mình Nhờ tính tương thích với những CPU của thế hệ trước nênnhững chương trình viết trước đó đều hoạt động bình thường trên CPU 80286
Trang 3Vi xử lý thế hệ thứ 2
Là bước tiến quan trọng trong việc chuyển đổi cách xử lý các số liệu từ dạng16bit thành dạng 32bit CPU 80386 ra đời năm 1985 được thiết kế tối ưu cho cáchoạt động tốc độ cao Sử dụng cho các hệ điều hành cao cấp như Windows 3x vàWindows NT với khả năng thực hiện nhiều tác vụ (multitasking) cùng lúc
Vi xử lý thế hệ thứ 3
Giảm thời gian thực thi 1 câu lệnh: để hoàn thành 1 câu lệnh đơn giản thìCPU 486 sử dụng trung bình khoảng 2 chu kì xung clock trong khi CPU 386 cần 4chu kì xung clock Thiết kế bộ nhớ đệm trong cấu trúc của CPU giúp nâng cao tốc
độ xử lý Bổ sung tính năng “Burst-mode memory cycles” giúp truy xuất bộ nhớnhanh hơn Tích hợp bộ xử lý toán học nâng cao hoạt động, đồng thời với bộ xử lýtoán học có sẵn nhằm tăng cường khả năng tính toán cho CPU
Vi xử lý thế hệ thứ 4
c. Thập niên 90
Được thiết kế với những cấu trúc và tính năng mới, điển hình là dòng sảnphẩm Pentium của Intel và K5 của AMD.Intel Pentium Processor được giới thiệuvào ngày 19-10-1992, CPU Pentium tương thích hoàn toàn với các CPU của Intel
Trang 4trước đó CPU Pentium có 32bit bus và 64bit data giúp cho CPU di chuyển lượng
dữ liệu gấp đôi so với các CPU thế hệ trước trong cùng một chu kì Các CPU IntelPentium thế hệ này hoạt động với xung clock khá cao (từ 75MHz đến 266MHz)như Pentium I, Pentium II, Pentium MMX
Vi xử lý thế hệ thứ 5
Được bổ sung nhiều chức năng mới hoàn toàn như: Dynamic Execution,Dual Independent Bus Thế hệ thứ 6 được bắt đầu vào khoảng tháng 11-1995(Pentium Pro) Kể từ đó, các sản phẩm tiếp theo đều có thiết kế căn bản tương tựnhư cấu trúc của Pentium Pro
Vi xử lý thế hệ thứ 6
Intel Celeron, Intel Pentium III: được giới thiệu vào tháng 2-1999, bổ sungthêm một số như: xử lý ảnh, đồ họa, xem phim, nghe nhạc, nhận dạng giọng nói
Trang 5Intel Celeron, Intel Pentium III
d. Thập niên đầu thế kỉ 21
Là thế hệ của CPU Pentium 4 dùng kiến trúc NetBurst do Intel sản xuất.Dòng CPU Pentium kết thúc vào ngày 27 tháng 7 năm 2006 và được thay thể bởidòng Intel Core (sử dụng nhân "Conroe")
CPU Pentium 4
Đặc trưng của vi xử lý thế hệ này là CPU có khả năng xử lý dữ liệu 64bit.Intel Itanium and Itanium 2: được thiết kế với công nghệ 90nm dùng cho các máychủ hoặc trạm cần hiệu năng cao Itanium là CPU đầu tiên của Intel có cấu trúc64bit được giới thiệu vào ngày 21-5-2001 Itanium 2 là CPU dành cho server đượcgiới thiệu vào tháng 6-2002
Intel Itanium and Itanium 2
Trang 6AMD Athlon 64 & AMD Athlon 64 FX: là CPU 64bit dành cho máy tính
cá nhân thông thường với bộ điều khiển bộ nhớ được tích hợp trong CPU giúp truyxuất dữ liệu trực tiếp vào bộ nhớ với thời gian nhanh nhất.Điểm khác biệt giữaAthlon 64 và Athlon 64 FX là dung lượng cache và độ rộng của bus bộ nhớ
AMD Athlon 64 & AMD Athlon 64 FX
II. Cấu trúc CPU (Central Processing Unit : Đơn vị xử lý trung tâm):
Trang 7Có 3 khối chính:
1. Bộ điều khiển : Control Unit CU
Nhận lệnh từ bộ nhớ
Giải mã lệnh và phát tín hiệu thực hiện lệnh
2. ALU (Arilthmetic and Logic Unit)
Thực hiện các phép toán số học và logic
3. Register Set (Tập các thanh ghi)
Là những ngăn nhớ đặc biệt nằm ngay bên trong vộ VXL dùng để lưu trữcác dữ liệu tạm thời giúp cho hoạt động của bộ nhớ
Ngoài ra còn có:
Đơn vị nối ghép bus(Bus interface Unit - BIU):
Trang 8kết nối và trao đổi thông tin giữa bus bên trong (internal bus)và bus bênngoài (external bus)
Mô hình kết nối đơn vị điều kiển
1. Bộ điều khiển : Control Unit CU
Trang 9- Clock: Mạch xung nhịp đồng hồ hệ thống dùng để đồng bộ các thao tác xử lítrong và ngoài CPU theo các khoảng thời gian không đổi.
- Có liên hệ thông tin với tất cả các đơn vị trong Bộ VXL bởi nó điều khiểntoàn bộ hoạt động xử lý thông tin bên trong Bộ VXL
- Kết quả giải mã lệnh dược đưa đến khối logic điều khiển CL (Control Logic)tạo ra chuỗi các tín hiể để điều khiển quá trình ghi đọc với các thanh ghi bêntrong, tính toán ALU
- Từ CL, các xung tín hiệu điều khiển đi ra bus điều khiển của hệ thống tácđộng đến BN hoặc đơn vị I/O để thực hiện trao đổi dữ liệu
- CL nhận tín hiệu điều khiển từ bên ngoài, như tín hiệu ngắn (INT, NMI),HOLD, RESET để xử lý bên trong trước khi đưa ra các tín hiệu trả lờinhư: chấp nhận ngắt INTA, dừng HALT…
- CL quyết định thứ tự làm việc của từng đơn vị bộ VXL và sự trao đổi thôngtin với thế giới bên ngoài chip VXL
- CL là trung tâm điều khiển của BVXL
2. ALU (Arilthmetic and Logic Unit)
Trang 10- Chứa khối logic thực hiện xử lý dữ liệu
- ALU là một phần tử cơ bản của CPU của một máy tính
- Bộ VXL chứa rất nhiều và rất phức tạp các ALU
- Một ALU phải xử lý các số sử dụng nhị phân cùng form với các mạch điện
tử, đó là hệ nhị phân 1 và 0
- Mỗi ALU có một thiết kế khác nhau, nhưng đều theo qui tắc mã bù hai Từ
đó, bộ ALU dễ dàng tính toàn các phép cộng trừ
- Thực hiện các phép tính số học và logic: and, sub, mul, div, and, or, not
Shift left, shift right, decr, incr
- Có hai cổng vào để nhận dữ liệu vào ALU và cổng ra để lấy kết quả xử lý dữliệu của ALU ra ngoài
- Các thanh ghi temp1 và temp2 làm nhiệm vụ nhận dữ liệu từ các nơi khácnhau bên trong bộ VXL thông qua bus dữ liệu bên trong và lưu trữ trunggian dữ liệu trong quá trình xử lý dữ liệu trong ALU
- Tương tự, cổng ra kết nối với bus dữ liệu bên trong do đó kết quả phép toàn
có thể được ra tới các nơi khác nhau, dữ liệu thường được đưa tới nơi bộcộng
- Các lệnh máy được ALU xử lý có thể là 1 hay 2 toán hạng
- Lệnh máy được đọc từ BN vào Bộ VXL được giải mã nhờ bộ giải mã lệnh
để tạo ra chuỗi các tín hiệu đi tới ALU điều khiển quá trình xử liệu trongALU
3. Register Set (Tập các thanh ghi)
Là vùng nhớ được CPU nhận biết qua tên thanh ghi và có tốc
độ truy xuất cực nhanh
Trang 11Chứa thông tin tạm thời phục vụ cho hoạt động ở thời điểmhiện tại của CPU
Số lượng thanh ghi tùy thuộc vào bộ vi xử lý cụ thể tănghiệu năng CPU
Được chia thành nhóm theo mục đích sử dụng
a Nhóm thanh ghi dùng chung:
+ Thanh ghi A (bộ cộng), B, C, D, E, H, L : 8 bit
+ để xử lý 16 bit, có các lệnh thực hiện với các cặp thanh ghi BC, CE, HL Các thanh ghi khác : thanh ghi trạng thái (SR), con trỏ ngăn xếp (SP), thanhđếm lệnh (PC), thanh ghi lệnh (instruction register),…
* Thanh ghi tổng A (accumulator):
- tham gia phần lớn các phép tinh
- độ dài của thanh tổng có thể tính bằng độ dài từ hoặc gấp đôi độ dài từ củaBVXL
- những lệnh I/O với ngoại vi là nhóm lệnh trao đổi byte d.liệu giữa thanhghi tổng A với các thanh ghi của điều khiển ngoại vi
- Lệnh nhập d.liệu IN PORT là lệnh đọc d.liệu từ cổng của ngoại vi vàothanh ghi A và OUT PORT là đọc nội dung thanh ghi A ra port ngoại vi
* Thanh đếm chương trình PC (program counter)
- 1 chương trình đc BVXL thực hiện phải chứa trong BN chính PC chứađ.chỉ của lệnh trong BN và chỉ ra cho BVXL biết lệnh tiếp theo nằm ở ngănnhớ nào để lấy ra thực hiện
- trong các BVXL công nghệ cao có cơ chế quản lý BN ảo Cơ chế đánh địachỉ ảo có sự biến đổi đ.chỉ ảo thành đ.chỉ VL nội dung của đ.chỉ lệnh sẽphức tạp
* Thanh ghi trạng thái SR (status register)
- dùng để ghi kết quả của các lệnh k.tra, s.sánh và 1 số lệnh tính toán với cácthanh ghi
- thanh ghi trạng thái còn đgl thanh ghi cờ, s/dụng các bit cờ có thể thực hiện
rẽ nhánh chương trình = các lệnh nháy và rẽ nhánh có đ.kiện
* Con trỏ ngăn xếp SP (stack pointer)
- Ngăn xếp là BN có cơ chế truy cập theo kiểu LIFO, luôn đc truy cập ở đỉnhTOP Nó làm nhiệm vụ lưu trữ những thông tin phải dùng đi dùng lại nhiềulần
- Các lệnh tác động đến ngăn xếp: call, ret, int, …
- Các lệnh chuyên dùng để cất giữ n.dung và phục hồi các thanh ghi củangăn xếp là push và pop, các lệnh này làm thay đổi đỉnh của ngăn xếp
Trang 12- Con trỏ ngăn xếp SP chứa đ.chỉ của đỉnh ngăn xếp và n.dung của SP sẽthay đổi mỗi khi thực hiện các lệnh vừa nêu trên
- khi khởi động hệ thống máy tính, con trỏ ngăn xếp luôn đc khởi tạo về địachỉ đỉnh của ngăn xếp
* Thanh ghi đ.chỉ BN và logic (memory address register and logic)
- có độ dài 16 bit, các đầu ra của nó đc điều khiển nối ra bus đ/c của h.thốngmáy tính để thực hiện chọn ngăn nhớ or để chọn cổng ngoại vi nào đó
- Trong chu kì đọc lệnh, 1 lệnh máy đc đọc từ BN, lúc này ndung thanh ghiđ/c ngăn nhớ và n.dung của thanh đếm lệnh PC là như nhau, nghĩa là thanhghi đ.chỉ BN trỏ tới từ lệnh đang đc đọc từ BN
- Thanh ghi đchỉ BN không thể tự động tăng hay giảm ndung mà nó nhậnđchỉ lệnh từ PC, từ SP và thanh ghi chỉ số
- Phụ thuộc vào các loại VXL, nó có thể có đ.dài khác nhau: 16, 32, 64 bit
* Thanh ghi lệnh IR (instruction register)
- chứa lệnh đang thực hiện
- như là bộ đệm duy trì ndung mã lệnh và đầu ra của IR đưa tới bộ giải mãlệnh để tạo ra chuỗi các tín hiệu điều khiển thực hiện lệnh
III. Chức năng và hoạt động của CPU
1. Chức năng của CPU:
Điều khiển hoạt động của máy tính
Xử lý dữ liệu
Nguyên tắc hoạt động cơ bản:
CPU hoạt động theo chương trình nằm trong bộ nhớ chính
2. Hoạt động của CPU:
• Giai đoạn nạp:
Lấy lệnh và dữ liệu, đọc các lệnh của chương trình và dữ liệu cần thiếtvào bộ xử lý
• Giai đoạn giải mã:
Xác định mục đích của lệnh và chuyển nó đến phần cứng tương ứng
• Giai đoạn thực thi:
Có sự tham gia của phần cứng, với lệnh và dữ liệu đã được nạp sẵn,các lệnh sẽ được thực hiện.Quá trình này có thể gồm các tác vụ nhưcộng, chuyển bít hay nhân thập phân động
Trang 13• Giai đoạn hoàn tất:
Lấy kết quả của giai đoạn thực thi và đưa vào thanh ghi của bộ xử lýhay bộ nhớ chính
Ví dụ: CPU thực hiện tính toán biểu thức:
Cache chỉ thị lệnh chứa dữ liệu 2=X
Dữ liệu mới từ bộ nhớ chính được
đưa vào vi xử lý thông qua các BUS;
được lưu trữ vào IC, khi đó, dữ liệu
được gán một mã ‘2=X’
Trang 14IC cung cấp bản sao dữ liệu
Trang 15PU chuyển một bản sao của mã
đến vi xử lý và được lưu trữ tại IC
với mã ‘X+Y=Z’, biểu thị phép tính
CỘNG
Trang 16Tại CU, mã lệnh được xử lý,
lệnh CỘNG (ADD) được gửi
đến ALU, nơi mà ‘X’ và ‘Y’
được cộng lại; sau đó, chúng
được gửi đến DC ALU liên lạc
với các Thanh ghi (Registers) và
gửi kết quả ‘5’ đến đó để được lưu
trữ tại một trong các địa chỉ
BUS, sau đó được lưu trữ tại một địa
chỉ trong IC với mã lệnh ‘Print Z’.PU yêu cầu
một bản sao của mã lệnh
‘Print Z’ để chuyển đến DU chờ xử lý
Tại DU, mã lệnh ‘Print Z’ được dịch
Trang 17và giải mã thành chuỗi các số nhị phân,
rồi chuyển chuỗi đó đến CU chờ xử lý
Lúc này, giá trị của Z đã được tính toán
xong (ở bước 3) và kết quả đang được lưu
trữ tại các thanh ghi (Registers) Lệnh
Print chỉ nhận về nội dung của thanh ghi
chứa kết quả và xuất nó ra màn hình để
bạn có thể thấy kết quả cuối cùng Đến đây,
CPU đã giúp người dùng tính xong phép
toán ‘2+3=5’
IV. Phương pháp thiết kế CPU
1. Bottom – up methodology ( phương pháp từ dưới lên )
Phương pháp từ dưới lên bắt đầu ngay cả trước khi các công cụ aided
Trang 18CAD(computer-Design – máy tính hỗ trợ thiết kế) đã được phát minh Nó vẫn còn được sử dụngtrong nhiều ngành công nghiệp hiện nay, bởi vì nó sau một phương pháp trực quancủa việc xây dựng các bộ phận trước khi lắp ráp toàn bộ sản phẩm.
Phương pháp bottom-up là phương pháp thường dùng để xây dựng phần mềm lớn,
phức tạp Ý tuởng của phương pháp này là xuất phát từ nhiều thành phần nhỏ đã cósẵn, ta khéo kết hợp chúng lại để tạo ra thành phần chức năng lớn hơn, ta tiếp tụckết hợp các thành phần xây dựng được để tạo ra thành phần lớn hơn nữa chođến khi xây dựng được chương trình giải quyết được bài toán mong muốn
Trong một phương pháp điển hình từ dưới lên, các nhà thiết kế phát triển các thànhphần của CPU và sau đó lưu trữ chúng trong một thư viện để sử dụng vào mức độtrừu tượng cao hơn tiếp theo
Hình 2.1 bottom – up methodoly
Trang 19Như chúng ta thấy trong hình 2.1, có bóng bán dẫn (transistor ), có thư việnlogic ,RTL(register transfer language – ngôn ngữ chuyển giao thanh ghi, chẳng hạnnhư Verilog và VHDL,là các chương trình ngôn ngữ bậc cao được tạo ra để môphỏng phần cứng máy tính), và xử lý các thành phần(processor components) Cácthành phần trong mỗi thư viện được sử dụng để xây dựng các thành phần trong thưviện trên cấp độ trừu tượng tiếp theo
1, Ở cấp độ vi mạch (circuit level), sử dụng bóng bán dẫn và phát triển các mạch
và bố trí cho logic cơ bản các thành phần như gates, flip-flops, bus drivers, vànhững thứ khác Các thành phần này trở thành tế bào tiêu chuẩn cho thiết kế cấpcao hơn( design level) và nhiệm vụ bố trí (layout tasks) Những tế bào tiêu chuẩn,với chức năng, cấu trúc, và bố trí của chúng, được lưu trữ trong thư viện thànhphần logic để sử dụng vào mức độ Logic trong hình 2.1
2, Ở cấp độ logic ( logic level), chúng ta tạo ra các đăng ký chuyển các thành phầnnhư registers, registes file, ALUs (đơn vị số học và logic),, multipliers (hệ số nhân)
và các thành phần khác cho kiến trúc vi xử lý bằng cách sử dụng các biểu thứcBoolean hoặc mô hình FSM và FSMD(cấu trúc xử lý dữ liệu và điều khiển) Saukhi lý tổng hợp logic các thành phần RTL, chúng ta thực hiện vị trí và định tuyếnvới các tế bào tiêu chuẩn cho mỗi thành phần và lưu trữ chúng trong thư viện thànhphần RTL
3, Ở mức độ xử lý ( processor) , chúng ta bắt đầu với C code, hoặc thiết lập mộtHướng dẫn và tạo ra các cấu trúc của các yếu tố xử lý (processing elements - PEs)hoặc các yếu tố truyền thông (communication elements - CEs) Ở cấp độ này,chúng ta cũng thực hiện floorplanning, vị trí (placement), và định tuyến ( routing)của những PEs hoặc CEs bằng cách sử dụng các thành phần từ thư viện RTL, vàlưu trữ chúng trong thư viện bộ xử lý
4, Ở cấp độ hệ thống ( system level), chúng tôi bắt đầu với một mô hình tính toán (MoC ) và tạo ra các cấu trúc hệ thống bao gồm nhiều PES và CES từ các thànhphần Bộ xử lý thư viện Cuối cùng, chúng ta thực hiện việc bố trí hệ thống bằngcách sử dụng
bố trí thành phần từ các thư viện xử lý ( processor library) Lưu ý rằng mỗi thànhphần
Trang 20thư viện có các mô hình chức năng, cấu trúc, và bố trí cho mỗi thành phần trongthư viện Vì vậy, bằng cách tạo ra các thành phần và lưu trữ chúng trong các thưviện, sau đó chúng ta có thể áp dụng chúng trong mỗi cấp độ trừu tượng kế tiếp.
=> Ưu điểm của phương pháp từ dưới lên là mức độ trừu tượng tách ra rõ ràng,đều có thư viện riêng của mình Điều này cho phép các địa điểm trên toàn cầu phânphối cho thiết kế trên mỗi cấp độ trừu tượng, và để dễ dàng quản lý thiết kế
Trên mỗi cấp độ trừu tượng, vì mỗi nhóm cung cấp một thư viện thành phần
tiếp theo mức độ trừu tượng Tuy nhiên, bất lợi của phương pháp này là
các thư viện phải bao gồm có thể tất cả các thành phần với tất cả các thông số
và phải được tối ưu hóa cho các số liệu cần thiết bởi bất kỳ ứng dụng hiện tại vàcác ứng dụng có thể trong tương lai Đây là một nhiệm vụ rất khó và không baogiờ kết thúc vì nó là rất khó để dự đoán mức độ trừu tượng thấp hơn tất cả các nhucầu về
mức độ trừu tượng cao hơn Mỗi thiết kế được thực hiện từ mức cổng trước , vớithiết kế ngày càng phức tạp nên phương pháp này thường khó quản lý và sửa lỗi ,đặc biệt các vi xử lý với hàng triệu transistor Các thiết kế theo phương
pháp bottom-up thông thường phải đưa ra cấu trúc mới , cách thiết kế phân cấp
mới nếu không sẽ khó quản lý những thiết kế phức tạp
2. Top – down methodology ( phương pháp từ trên xuống)
Phương pháp phân tích top-down là phương pháp thường dùng để xây dựngchương trình giải quyết bài toán lớn, phức tạp Ý tuởng của phương pháp này làphân rã bài toán phức tạp thành nhiều thành phần nhỏ hơn, mỗi thành phần nhỏhơn sẽ được phân rã tiếp thành nhiều thành phần nhỏ hơn nữa Quá trình phân rã
sẽ dừng lại khi hoặc thành phần tìm được đã được giải quyết rồi hay đủ đơn giản
để hiện thực
Trong trái ngược với phương pháp từ dưới lên, phương pháp từ trên xuống không
cố gắng bố trí thành phần hoặc hệ thống cho đến khi toàn bộ thiết kế được hoànthành.Một
Trang 21phương pháp từ trên xuống bắt đầu với một MOC cụ thể và tạo ra từ nó một nềntảng hệ thống hoặc cấu trúc hệ thống, trong đó mỗi thành phần có các thông số của
nó và các giá trị số liệu yêu cầu được xác định, nhưng không phải cấu trúc(structure) hoặc bố trí(layout) của nó Trên mức độ tiếp theo của sự trừu tượng,mỗi thành phần PE hoặc CE là tiếp tục phân thành các thành phần nhỏ hơn RTL
Ví dụ, trong hình 2.2, PE và CE thành phần đã được tạo ra ở cấp độ hệ thống(system level) được phân chia thành các thành phần RTL với các thông số và các
số liệu được xác định
Hình 2.2 top – down methodoly
Trang 22Trong trường hợp này, mỗi đơn vị chức năng, chẳng hạn như ALU, có tất cả cácchức năng quy định, cũng như sự trễ delay và yêu cầu điện năng( powerrequirement) Sau khi được xác định, các thành phần RTL là tiếp tục phân thànhcác thành phần logic hoặc gates Cuối cùng, mỗi thành phần logic được chia thànhmột stransistor netlist,
trong đó mỗi bóng bán dẫn bố trí (transistor layout) đại diện cho một tế bào cơ bản( basic cells) Tất cả các tế bào cơ bản cho toàn bộ hệ thống, được đặt trên silicon
và kết nối phù hợp sử dụng vị trí và định tuyến các phương pháp và công cụ Nhưvậy Phương pháp từ trên xuống được sử dụng thiết kế cho mọi máy tính nhưngngày nay thiết kế quá phức tạp như vậy cho phương pháp hoàn chỉnh từ trên xuống
Nói chung, phương pháp từ trên xuống để lại vị trí và định tuyến cho bước cuốicùng
Bằng cách tránh bố trí trên các cấp độ khác của trừu tượng Thật không may,
số liệu các hệ thống và các thành phần không được biết đến cho đến khi bước cuốicùng và do đó nó là rất khó để tối ưu hóa thiết kế toàn bộ Sự phân chia thiết kếhoặc
tổng hợp phải được lặp đi lặp lại một lần nữa mà không có thiết kế thực sự biết liệutối ưu hóa được đi đúng hướng Để tránh quá nhiều bước lặp thiết kế, các nhà thiết
kế cần các khái niệm về đóng cửa số liệu trong đó giá trị khác nhau từ mức độ trừutượng thấp hơn số liệu được sử dụng để chú thích thiết kế trên mức độ trừu tượngcao hơn Trong trường hợp này, nhà thiết kế có thể ước tính tối ưu hóa giá trị sốliệu về mức độ trừu tượng thấp hơn trong quá trình thiết kế tiếp theo lặp đi lặp lạitrên các mức trừu tượng hóa cao hơn
3. Platform methodology
Hai phương pháp thiết kế được trình bày trong các phần trước đại diện cho cáctrường hợp lý tưởng của hai khái niệm thiết kế khác nhau Trong thực tế, phươngpháp thiết kế khác nhau từ công ty đến công ty và thậm chí giữa các nhóm khácnhau trong cùng một công ty Trong trường hợp này, hệ thống thiết kế thường bắtđầu với một nền tảng đã được xác định, thường là một định nghĩa bởi một nền tảng
Trang 23của nhà cung cấp hoặc được xác định tại bên trong công ty Phương pháp được thểhiện trong Hình 2,5.
Hình 2.5 Platform methodology
Nền tảng này có thể đã có một số thành phần tiêu chuẩn, chẳng hạn như memory
và standard processors với bố trí được xác định rõ ràng hệ thống nền tảng cũng cóthể được nâng cấp với việc bổ sung các thành phần tùy chỉnh sẽ được tổng hợp với
bộ xử lý và các công cụ tổng hợp RTL, sau đó bố trí các thành phần tùy chỉnh này
có thể thu được thông qua các tế bào tiêu chuẩn(standard cell) Hơn nữa, importIPs cũng được chuyển đổi để bố trí standard cell Vì vậy, mỗi thành phần tùy chỉnhhoặc import IP có thể được định nghĩa với một netlist của tế bào tiêu chuẩn, đượckết hợp với netlists của custom components khác cho các tiêu chuẩn kết hợp tế bào
bố trí Như vậy tiêu chuẩn bố trí tế bào sau đó được kết hợp vào mức độ hệ thốngvới các bố trí của bộ vi xử lý tiêu chuẩn và các thành phần bộ nhớ bố trí vào hệthống nền tảng Khi sử dụng một nền tảng như vậy, chúng ta thực hiện thiết kế vật
Trang 24lý hoặc bố trí ba lần: một lần cho các tế bào tiêu chuẩn, sau đó chúng ta sử dụngcác tế bào tiêu chuẩn cho bố trí các thành phần tùy chỉnh, và cuối cùng chúng ta sửdụng bố trí thành phần xử lý ( processor component) nền tảng cuối cùng.
Để đơn giản hóa thiết kế nền tảng, một số nền tảng có bố trí hệ thống cho tất cả cácthành phần xử lý tiêu chuẩn hoàn thiện với một số không gian mở trong bố trí tếbào tiêu chuẩn của các thành phần tùy chỉnh Khi đó, chúng ta thực hiện bố trí chỉ
có hai lần: một lần cho các tế bào tiêu chuẩn và thứ hai là thời gian chúng ta sửdụng các tế bào tiêu chuẩn cho cách bố trí của các thành phần tùy chỉnh
Phương pháp này hỗn hợp có lợi thế từ cả hai phương pháp từ dưới lên và từ trênxuống
kể từ khi xử lý với các thành phần tiêu chuẩn có sẵn từ các thư viện và các thànhphần tùy chỉnh có thể được chèn vào để tối ưu hóa ứng dụng Tuy nhiên, phươngpháp này có điểm yếu của yêu cầu chúng ta làm bố trí hơn một lần Ngoài ra, cácthành phần tùy chỉnh phải được điều chỉnh để phản ánh cơ cấu và cách bố trí cácyêu cầu của nền tảng nhất định
4. System methodology ( phương pháp hệ thống)
Phương pháp nền tảng có thể được nâng cấp lên phương pháp cấp hệ thống Mô tảkiến trúc tiêu chuẩn của các tế bào và trình biên dịch retargetable Một kiến trúc tếbào chứa một bộ xử lý parametrizable lập trình Các thông số bao gồm số lượng,loại và kích thước của thành phần, kết nối thành phần, và số lượng của các giaiđoạn đường ống ,các đơn vị chức năng, bộ điều khiển và các đường dữ liệu Mộtkiến trúc tiêu chuẩn như vậy tế bào có thể được tổng hợp trước với các tế bào tiêuchuẩn và đưa vào thư viện của các processor component hoặc được tạo ra theo yêucầu
Một phương pháp hệ thống cấp (system level) điển hình dựa trên các tế bào kiếntrúc nó được thể hiện trong hình 2.6 nó bắt đầu với MoC và tạo ra nền tảng kiếntrúc bao gồm các tiêu chuẩn hoặc tùy chỉnh kiến trúc tế bào Vì tất cả các tế bào
Trang 25kiến trúc có các mô hình bố trí trong thư viện bố trí hệ thống cuối cùng thu đượcbằng cách kết hợp bố trí kiến trúc tế bào.
Hình 2.6 system methodology
Phương pháp này có lợi thế xử lý chỉ với hai lớp trừu tượng cao nhất Vì vậy, nó làrất phù hợp cho các chuyên gia ứng dụng với kiến thức tối thiểu và thiết kế hệthống xử lý Tuy nhiên, nó đòi hỏi một retargetable trình biên dịch để bao gồm các
tế bào kiến trúc khác nhau
V. Giới thiệu
1. Giới thiệu về ngôn ngữ VHDL
VHDL (VHDL là từ viết tắt của Very Hight Speed Intergrated CircuitHardware Description Language) là ngôn ngữ lập trình được thiết kế theocách mô tả hành vi của hệ thống số VHDL được phát triển vào những năm1980
VHDL có nhiều đặc điểm thích hợp mo tả hành vi của các thành phần thiết bịđiện tử từ những cổng lý luận đơn giản đến những bộ vi xử lý phức tạp Đặcđiểm của VHDL là cho phép mô tả chính xác hành vi của những mạch điện tử
Trang 26Cũng giống như ngôn ngữ Pascal, C và C++, VHDL bao gồm những đặcđiểm hữu ích cho kỹ thuật thiết kế những cấu trúc và trình bày những đặcđiểm dữ liệu Không giống như những ngôn ngữ lập trình khác, VHDL cungcấp những đặc điểm cho phép để mô tả những sự kiện xảy ra.
2. Các đặc điểm của VHDL
- Đặc điểm tổng quát: VHDL có thể được sử dụng để lập tài liệu thiết kế, thiết
kế mức độ cao, mô phỏng tổng hợp và kiểm tra phần cứng VHDL cho phép
mô tả phần cứng từ mức hệ thống đến mức cổng, hỗ trợ tính đồng thời nghĩa
là từ các hợp phần nhỏ đến lớn hoạt động tại một thời điểm
- Hỗ trợ phân cấp thiết kế: Đây là đặc tính thiết yếu của ngôn ngữ phần cứng
đa cấp Thiết kế chứa một mô tả giao diện và một số phần độc lập để mô tảhoạt động Hoạt động của hệ thống có thể được đặc tả dựa trên chức nănghoặc dựa trên cấu trúc của những phần nhỏ hơn chúng Đặc tả cấu trúc cáchợp phần có thể được thực hiện ở tất cả các cấp thiết kế
- Có thư viện hỗ trợ: Ngôn ngữ cung cấp cơ chế để truy cập đến nhiều thư viện
khác nhau Thư viện không chỉ chứa đặc tả giao diện của thiết kế, mà cònchứa một số đặc tả của hệ thống Các đặc tả và các mẫu có thể dựa vào thưviện sau khi được dịch bởi chương trình dịch
- Có lệnh tuần tự: Khi người thiết kế phân chia hệ thống thành những hợp
phần đồng thời hay phần con, tiếp đó người thiết kế có thể mô tả chi tiết hoạtđộng bên trong bằng những cấu trúc ngôn ngữ lập trình tuần tự như các lệnhcase, if – then – else, loop, … Các lệnh tuần tự cũng cấp phương pháp đơngiản để tạo ra các hợp phần phần cứng dựa trên chức năng của chúng
- Thiết kế tương thích chung:Để thiết kế tổng quát ngôn ngữ cho phép người
thiết kế đặt cấu hình mô tả hợp phần có thống số chúng trong thiết kế Mô tảtương thích chung có thể thay đổi kích thước đặc tính vật lý, định thời đặctính tải và môi trường hoạt động của thiết kế
- Khai báo kiểu và cách dùng: Ngôn ngữ VHDL cho phép mô tả các kiểu bit,
boolean, integer, … Ngoài ra còn hỗ trợ các kiểu do người sửa dụng địnhnghĩa Ngôn ngữ VHDL cũng cho phép định nghĩa lại các toán tử của ngônngữ bởi người sử dụng
- Sử dụng các chương trình con: Ngôn ngữ VHDL cho phép định nghĩa các
hàm, thủ tục, các chương trình con có thể sử dụng để biến đổi các kiểu, địnhnghĩa dơn vị luận lý, định nghĩa lại toán hạng, định nghĩa toán tử mới và cácứng dụng khác trong ngôn ngữ lập trình
Trang 27- Điều khiển định thời: Ngôn ngữ VHDL là cho phép đặc tả định thời ở tất cả
các cấp như là: đặt giá trị của tín hiệu, thời gian trễ, định nghĩa tín hiệu đồng
bộ, đặ độ rộng xung …
3. Các khái niệm cơ bản
• Các khối
VHDL được mô tả thành những khối, khối đầu tiên là khối đơn vị thiết kế
Có 5 loại đơn vị thiết kế được phân thành hai phần là phần mô tả kiến trúcphần cứng và phần mềm
- Phần cứng gồm: Thực thể (entity), cấu hình (configuration), kiến trúc
(architecture)
- Phần mềm gồm: Gói (package) và thân gói (package body).
• Giới thiệu hai đơn vị thiết kế cơ bản của VHDL
Hai đơn vị thiết kế cơ bản của VHDL là Entity declaration và Architecturebody
Một Entity là một mô hình sử dụng một khai báo thực thể và ít nhất có mộtthực thể kiến trúc Khai báo thực thể là mô tả tổng quát bên ngoài của mộtthực thể, ví dụ như: tên các tín hiệu input, output Thân của kiến trúc(Architecture body) là đi vào đặc tả bên trong của một thực thể, ví dụ thiết lập
sự nối kết liên tục của các thành phần mà đại diện cho cấu trúc của một thựcthể, hoặc tập hợp tất cả các phát biểu đồng thời hay liên tục mà đại diện cho
xử lý của thực thể
- Khai báo thực thể (Entity Delaration)
Khai báo thực thể là chỉ ta tên của mô hình cần thiết kế và danh sách các cổnggiao tiếp Cổng là những tín hiệu mà thực thể dùng để giao tiếp với những môhình khác trong môi trường tổng quát của nó
Trang 28Ví dụ:
Entiy mach_cong is
Port (a,b: in bit; sl,c : out bit) End mach_cong
- Thực thể kiến trúc (Architecture body)
Mô tả chi tiết một thực thể được chỉ ra bởi kiến trúc của thực thể
Ví dụ: mô hình cho thực thể mach_cong, ở dạng cấu trúc (structural):
Architecture arc_mach_cong ofmach_cong is
G1: Xor port map(A, B, Sum);
G2: And port map(A, B, C);
Endarc_mach_cong;
Thực thể kiến trúc có tên là “arc_mach_cong” dùng những thành phần có sẵncủa ngôn ngữ VHDL như cổng And, Xor để nối kết chúng lại với nhau tạothành một cấu trúc cho thực thể
+ Mô tảkiến trúc theo mô hình hoạt động:
Mô hình hoạt động mô tảcác hoạt động của hệthống (hệthống đáp ứng
với các tín hiệu vào nhưthếnào và đưa ra kết quảgì ra đầu ra) dưới dạng các cấu trúc ngôn ngữlập trình bậc cao Cấu trúc đó có thểlà PROCESS , WAIT,
IF, CASE, FOR-LOOP…
Ví dụ:
Trang 29+ Mô tảkiến trúc theo mô hình cấu trúc:
Mô hình cấu trúc của một phần tử(hoặc hệthống) có thểbao gồm nhiều
cấp cấu trúc bắt đầu từmột cổng logic đơn giản đến xây dựng mô tảcho mộthệ
thống hoàn thiện Thực chất của việc mô tảtheo mô hình cấu trúc là mô tảcác phần tửcon bên trong hệthống và sựkết nối của các phần tửcon đó
Trang 30Tên_componemt port [ danh sách ];
VI. Mối quan hệ giữa ngôn ngữ VHDL và phần cứng
1. Các kiểu VHDL
Trong ngôn ngữ VHDL có các kiểu sau:
- Kiểu liệt kê được định nghĩa bằng cách liệt kê dánh sách cac giá trị, mỗi thànhphần của danh sách là một tên dành riêng hoặc là một ký tự số
Ví dụ:
Type STD_LOGIC is (‘U’,’X’,’0’,’1’,’H’,’-’);
Type STATE_TYPE is (HALT, READY, RUN, ERROR);
- Kiểu nguyên có hai loại:
+ Kiểu nguyên được định nghĩa như vùng con của kiểu tổng quát đã đượccài sẵn và các giới hạn phải được khai báo
Ví dụ:
Type LENGTH is range 0 to 1000;
Type BYTE_INT is range -128 to 127;
+ Kiểu nguyên được định nghĩa bởi người sử dụng
Trang 31Ví dụ:
Type MY_INTEGET is INTEGER range 0 to 1000;
Signal MY_INT: MY_INTEGER;
- Kiểu mảng dùng để định nghĩa một tập chỉ số
Ví dụ:
Type WORD is array (10 down to 0) of bit;
- Kiểu record dùng để định nghĩa tập các kiểu khác nhau
Ví dụ:
Type CODE_TYPE is (NONE, DATA, STATMT);
Type ITEM_TYPE is record
CODE: CODE_TYPE;
INT: INTEGER;
End record;
2. Các đối tượng của ngôn ngữVHDL
Trong ngôn ngữ VHDL có một số đối tượng như hằng, biến, tín hiệu
- Hằng: là giá trị được xác địn trong suốt quá trình khởi tạo, các giá trị này
không đổi trong suốt quá trình thực thi
Ví dụ:
type TAB is array (BIT, BIT) of BIT;
Constant AND_TAB: TAB := ((‘0’,’0’),(‘0’,’1’));
- Biến: Giá trị của biến được cập nhật tức thời khi được gán.
Có 2 loại biến, biến cục bộ và biến toàn cục
+ Biến cục bộ có thể được khai báo tỏng các trương trình con hoặctrong trong các quá trình và qua trong là trong quá trình tổng hợp nơi
Các tín hiệu hiện hữu từ khi bắt đầu đến khi kết thúc của tá trình táitạo Không tạo ra tin hiệu mới hoặc không nối kết vậy lý với các tinhiệu được cho phép tỏng thời gian tái tạo
Các tín hiệu không có chứa đựng như các biến Các tién hiệu như lànhững đối tượng và có các kết nối được cố định với các tín hiệu khác
Ví dụ:
Trang 32Signal A1, A2: BIT_VECTOR(DATA’range) ; Signal A3: BIT;
3. Các toán tử số học
- Các toán tử luận lý: or, and, nor, nand, xor, xnor nhận các toán hạng
kiểu: bit, boolean, vector.
Ví dụ:
Signal s, x,y: bit_vector(1 downto 0);
Signal r,a, b: bit;
Trang 34Endnor2;
Architecturecomb of nor2 is Begin
S<= A nor B;
Endcomb;
- Các toán tử số học: Gồm 4 toán tử cơ bản cộng, trừ, nhân và chia.
Các toán tử này thường thực hiện trên kiểu dữ liệu số nguyên
(integer) Trong ngôn ngữ VHDL các toán tử ‘+’, ‘-’, ‘*’, ‘/’đã được
định nghĩa trước vì vậy có thể sử dụng mà không cần khai báo
Ví dụ:
Signal l1, l2 SUM_l: INTEGER range –16 to 15;
Signal N1, N2, SUM_N: INTEGER range 0 to 47;
+ Tính số học
Trang 35Phép dịch phải số học được thực hiện dịch mảng sang phải và lấy bittrái nhất của giá trị ban đầu là bit trái nhất sau khi dịch
Phép dịch trái số học thực hiện dịch mảng sang trái và lấy bit phảinhất của giá trị ban đầu làm bit phải nhất của giá trị sau khi dịch
Ví dụ:
Giá trị ban đầu 10100101 Dịch phải số học 11010010 Dịch trái số học 01001011
- Bộ dồn kênh
Chức năng cơ bản của bộ dồn kênh là để chon lựa một đầu ra trongnhiều đầu vào, trong khi đó mạch phân kênh thực hiện thao tác ngượclại, một đầu vào được truyền đến một trong những đầu ra, các giá trịđầu ra khác giữ giá trị trước của chúng
Ví dụ:
Entity MUX2 is Port (A, B: in bit; Select_A: in bit; Z: out bit);
Trang 36- Mạch cài
Mạch cài là tài nguyên bộ nhớ đơn giản nhất, đầu vào D được truyềnđến đầu ra Q khi tin hiệu điều khiển G tích cực nếu không thì giá trịtrước đó của D giữ nguyên trên Q
Ví dụ:
ENTITY LATCH IS Port (G: in BIT; D: in BIT; Q: out BIT);
Ví dụ:
Entity FF IS Port (clk: in BIT; D: in BIT; Q: out BIT);
End FF;
Architecture A of FF IS BEGIN
P_FF: process
Begin
If CLK =’1’ then Q <= D;
End if;