ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ TOAN
NGHIÊN CỨU, THIẾT KẾ VÀ MÔ HÌNH HÓA MỘT MẠNG
TRÊN CHIP (NOC: NETWORK-ON-CHIP) VỚI CẤU TRÚC
LIÊN KẾT 2D-MESH
LUẬN VĂN THẠC SĨ
Hà Nội - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ TOAN
NGHIÊN CỨU, THIẾT KẾ VÀ MÔ HÌNH HÓA MỘT MẠNG
TRÊN CHIP (NOC: NETWORK-ON-CHIP) VỚI CẤU TRÚC
LIÊN KẾT 2D-MESH
Ngành:
Công nghệ Điện tử - Viễn thông
Chuyên ngành:
Kỹ thuật điện tử
Mã số:
60 52 70
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Trần Xuân Tú
Hà Nội - 2010
- iii-
Mục lục
Lời cảm ơn ................................................................................................................... i
Lời cam đoan ...............................................................................................................ii
Mục lục ..................................................................................................................... iii
Danh mục hình vẽ ........................................................................................................ v
Danh mục các từ viết tắt ............................................................................................ vii
Lời mở đầu .................................................................................................................. 1
Chương 1.
Hệ thống trên một vi mạch ..................................................................... 3
1.1.
Giới thiệu về hệ thống trên vi mạch ............................................................... 3
1.2.
Các vấn đề truyền thông bên trong chip ......................................................... 4
1.3.
Từ hệ thống trên chip đến mạng trên chip ...................................................... 5
1.4.
Quy trình thiết kế hệ thống trên chip.............................................................. 7
Chương 2.
Mạng trên chip và các khái niệm cơ bản ............................................... 11
2.1.
Mạng trên chip ............................................................................................ 11
2.2.
Các khái niệm cơ bản về mạng trên chip...................................................... 12
2.2.1.
Tôpô mạng ........................................................................................... 12
2.2.2.
Kỹ thuật truyền thông ........................................................................... 14
2.2.3.
Cơ chế truyền thông ............................................................................. 15
2.2.4.
Thuật toán định tuyến ........................................................................... 17
2.2.5.
Kỹ thuật điều khiển luồng dữ liệu và tắc nghẽn .................................... 18
2.2.6.
Chất lượng dịch vụ mạng ..................................................................... 20
Chương 3.
Thiết kế, mô hình hoá và mô phỏng ...................................................... 22
3.1.
Đặt vấn đề ................................................................................................... 22
3.2.
Bộ định tuyến sử dụng trong thiết kế ........................................................... 23
3.3.
Xây dựng mạng 2×2 .................................................................................... 25
- iv3.4.
Phương pháp mô hình hoá, mô phỏng và kiểm chứng thiết kế. .................... 28
3.5.
Kết quả mô phỏng và kiểm chứng ............................................................... 31
3.5.1.
Mô hình hóa và mô phỏng trên một bộ định tuyến ................................ 31
3.5.2.
Mô hình hóa, mô phỏng trên hai bộ định tuyến ..................................... 33
3.5.3.
Mô hình hóa, mô phỏng trên mạng 2×2. .............................................. 37
Kết luận ..................................................................................................................... 43
Tài liệu tham khảo ..................................................................................................... 44
- v-
Danh mục hình vẽ
Hình 1.1: Hệ thống trên vi mạch [13]. .......................................................................... 4
Hình 1.2: Cấu trúc truyền thông trên chip. ................................................................... 6
Hình 1.3: Quy trình thiết kế một hệ thống trên chip. .................................................... 8
Hình 2.1: Một NoC hai hướng 3×3 [8]. ...................................................................... 12
Hình 2.2: Các tôpô mạng thường dùng cho mạng trên chip: (a) chordal ring; (b) 2Dmesh; (c) 2D torus; (d) Binary tree; (e) Fat-tree. ........................................................ 13
Hình 2.3: Cơ chế truyền thông Lưu trữ và chuyển tiếp (SAF). ................................... 15
Hình 2.4: Cơ chế truyền thông VCT. ......................................................................... 16
Hình 2.5: Cơ chế truyền thông Wormhole. ................................................................. 16
Hình 2.6: Hiện tượng tắc nghẽn tĩnh (deadlock). ....................................................... 19
Hình 2.7: Sử dụng kênh ảo để tránh deadlock. ........................................................... 19
Hình 2.8: Hiện tượng tắc nghẽn động (Livelock)................................................... 20
Hình 3.1: Mô hình mạng trên chip 2D-mesh với kích thước 2×2. ............................... 22
Hình 3.2: Mô hình bộ định tuyến được phát triển tại phòng thí nghiệm SIS. .............. 23
Hình 3.3: Định dạng các flit. ...................................................................................... 24
Hình 3.4: Mô hình mạng 2×2 trên chip. ..................................................................... 26
Hình 3.5: (a) Các đường kết nối giữa hai bộ định tuyến/lõi IP bất kỳ; (b) Giao thức
truyền thông bắt tay “send-accept”............................................................................. 26
Hình 3.6: Quy trình mô hình hóa, mô phỏng và kiểm chứng thiết kế. ......................... 28
Hình 3.7: Môi trường kiểm tra và mô phỏng chức năng hoạt động của mạch. ............ 29
Hình 3.8: Lưu đồ thuật toán của IP phát. .................................................................... 30
Hình 3.9: Lưu đồ thuật toán của IP nhận. ................................................................... 31
- viHình 3.10: Môi trường kiểm tra, mô phỏng chức năng hoạt động của một bộ định
tuyến. ......................................................................................................................... 32
Hình 3.11: Kết quả mô phỏng trên một bộ định tuyến. ............................................... 32
Hình 3.12: Môi trường kiểm tra, mô phỏng chức năng hoạt động của hai router. ....... 34
Hình 3.13: Kết quả mô phỏng quá trình truyền dữ liệu từ IP00 đến IP01. .................. 35
Hình 3.14: Kết quả mô phỏng quá trình truyền dữ liệu từ IP01 đến IP00. .................. 36
Hình 3.15: Môi trường kiểm tra, mô phỏng chức năng hoạt động của một mạng lưới 2×2. . 37
Hình
3.16:
Kết
quả
mô
phỏng
quá
trình
truyền
dữ
liệu
từ
IP00→R_00→R_01→R_11→IP11. .......................................................................... 38
Hình
3.17:
Kết
quả
mô
phỏng
quá
trình
truyền
dữ
liệu
IP00→R_00→R_10→R_11→IP11. .......................................................................... 40
Hình 3.18: Kết quả mô phỏng trường hợp các gói tin đến cùng một thời điểm và cùng
đích đến. .................................................................................................................... 41
- vii-
Danh mục các từ viết tắt
AMBA
ADC
: Advanced Microcontroller Bus Architecture
: Analog Digital Convert
ASIC
: Application Specific Integrated Circuit
BE
BoP
CUT
: Best-effort
: Begin of Packet
: Circuit-Under-Test
DAC
: Digital Analog Convert
DSP
EoP
GALS
GS
: Digital Signal Processors
: End of Packet
: Globally Asynchronous- Locally Synchronous
: Guaranteed Services
HDL
IP
MPSoC
NoC
NA
: Hardware Description Languages
: Intellectual Property
: Multi-Processor SoC
: Network-on-Chip
: Network Adapters
QoS
: Quality of Service
RAM
RF
ROM
RTL
: Random Access Memory
: Radio Frequency
: Read Only Memory
: Register Transfer Level
SoC
SAF
TTL
TDM
: System-on-Chip
: Store-And-Forward
: Time To Live
: Time Division Multiplex
VC
VCT
VHDL
VLSI
: Virtual Channel
: Virtual Cut-Through
: Very High Speed Integrated Circuits HDL
: Very Large Scale Integration
WH
: Wormhole
- 1-
Lời mở đầu
Cùng với sự tiến bộ của công nghệ tích hợp bán dẫn, xu thế công nghệ thiết kế
chip là tích hợp ngày càng nhiều khối tính toán trên cùng một chip đơn nhằm đáp ứng
các yêu cầu của ứng dụng. Các khối tính toán này có thể là các bộ xử lý, các khối xử lý
tín hiệu số (DSP: Digital Signal Processors), các bộ nhớ (RAM, ROM), các bộ mã hoá
và giải mã, hay các đơn vị xử lý vào/ra như Ethernet, Bluetooth… Các khối tính toán
này thường được gọi là lõi IP (Intellectual Property). Một hệ thống mà trước kia phải
xây dựng trên một hay nhiều bo mạch lớn thì bây giờ có thể được tích hợp lên trên một
chip và do đó hình thành thuật ngữ “hệ thống trên chip”, trong tiếng Anh gọi là
“System-on-Chip” (SoC). Hệ thống trên một chip được biết đến như là một phương
pháp thiết kế gần đây nhất cho phép tích hợp trên hệ thống khoảng từ vài chục đến vài
trăm lõi IP như đã kể trên. Tuy nhiên, việc tích hợp nhiều lõi IP lên trên một chip dẫn
đến nhu cầu truyền thông trên chip tăng lên. Vì thế các phương thức truyền thông
truyền thống như kết nối điểm-điểm, kết nối bus chung không còn đáp ứng được nhu
cầu truyền thông trên chip. Bài toán thiết kế các hệ thống trên chip chuyển thành bài
toán thiết kế kiến trúc truyền thông trên chip. Trong khi đó, sự bùng nổ các ứng dụng
của Internet và lưu lượng truyền thông trên Internet ngày càng không ngừng tăng lên
khiến các nhà nghiên cứu nghĩ đến việc thực hiện một kiến trúc truyền thông kiểu
mạng máy tính thu nhỏ ngay trên các chip tích hợp.
Chính vì vậy, tôi chọn đề tài: “Nghiên cứu, thiết kế và mô hình hoá một mạng
trên chip (NoC: Network-on-Chip) với cấu trúc liên kết 2D-mesh” với mong muốn xây
dựng một mô hình truyền thông có thể đáp ứng nhu cầu truyền thông giữa các khối IP
trong một hệ thống trên chip.
Nội dung luận văn gồm 3 chương như sau:
Chương 1 giới thiệu tổng quan về hệ thống trên chip, xu thế phát triển một hệ
thống trên chip. Tiếp đó, một số vấn đề gặp phải trong quá trình thiết kế và thực thi
các hệ thống trên chip, có liên quan tới lưu lượng truyền thông trên chip cũng được đề
cập một cách ngắn gọn. Từ đó, lý do xuất hiện khái niệm mạng trên chip cũng sẽ được
đề cập và làm rõ. Cuối cùng, với mục đích giúp người đọc dễ dàng nắm bắt phần thực
nghiệm, chương này cũng dành một phần để trình bày tóm lược về quy trình thiết kế
hệ thống trên chip hiện tại.
- 2Chương 2 giới thiệu tổng quan về mô hình mạng trên chip, các thành phần cấu
thành nên mạng truyền thông, và các khái niệm cơ bản liên quan đến mô hình mạng
trên chip như tôpô mạng, kỹ thuật truyền thông, cơ chế truyền thông, thuật toán định
tuyến, kỹ thuật điều khiển luồng dữ liệu, các hiện tượng tắc nghẽn truyền thông và
chất lượng dịch vụ mạng…
Chương 3 trình bày bài toán thiết kế, các vấn đề mô hình hoá thiết kế một mô
hình mạng trên chip với cấu trúc liên kết dạng lưới có kích thước 2×2 (2D-mesh) bằng
ngôn ngữ VHDL, mô phỏng và kiểm chứng thiết kế thông qua công cụ thiết kế phần
cứng ModelSim (Mentor Graphics).
Cuối cùng là một số kết luận và hướng phát triển tiếp theo của đề tài.
- 3-
Chương 1.
Hệ thống trên một vi mạch
Chương này giới thiệu khái quát về một hệ thống trên vi mạch, đặc điểm của một
hệ thống trên một phiến tinh thể, tiếp đến là các vấn đề truyền thông bên trong vi mạch từ
đó đi đến giới thiệu lý do chuyển từ mô hình hệ thống trên chip thông thường sang mô
hình mạng trên chip. Cuối cùng là giới thiệu về quy trình thiết kế hệ thống trên vi mạch.
1.1. Giới thiệu về hệ thống trên vi mạch
Ngày nay, đi liền với sự phát triển công nghệ bán dẫn là công nghệ thiết kế và
chế tạo vi mạch đã cho phép tích hợp cả một hệ thống hoàn chỉnh lên trên một phiến
tinh thể (silicon). Với ý tưởng ban đầu là tích hợp tất cả các thành phần của một hệ
thống máy tính hay một hệ thống điện tử khác trên một vi mạch đơn (chip đơn).
Nhưng không lâu sau, hệ thống trên chip (SoC: System-on-Chip) đã được mở rộng, nó
không chỉ đơn thuần là một hệ thống máy tính hay một hệ thống điện tử mà hệ thống
tích hợp trên chip có thể bao gồm các lõi vi xử lý (processor) hoặc các khối xử lý tín
hiệu số (Digital Signal Processor), các khối nhớ (RAM, ROM, Flash…), các giao tiếp
mở rộng (USB, SPI, Ethernet, Bluetooth…), các bộ mã hóa và giải mã, các bộ chuyển
đổi ADC và DAC, hệ thống BUS, các khối điều chỉnh điện thế và quản lý năng lượng
của nguồn… kể cả các khối tần số radio (RF: Radio Frequency) [12] . Các khối chức
năng này còn được gọi là các lõi IP (Intellectual Property). Hình 1.1 là mô hình một hệ
thống trên vi mạch.
Theo dự đoán ITRS1 (2009), trong thập kỷ tới độ phức tạp của hệ thống trên
chip (SoC) sẽ tiếp tục tăng nhanh để có thể đáp ứng yêu cầu ngày càng cao của các
ứng dụng. SoC có thể tích hợp được hàng trăm, hay thậm chí nhiều hơn, lõi IP trên
một chip đơn. Thiết kế SoC ở quy mô này được bắt đầu từ các thành phần đã được
thiết kế sẵn, ví dụ như các bộ xử lý, bộ điều khiển và mảng bộ nhớ. Phương pháp thiết
kế tái sử dụng các lõi IP trở thành phương pháp thiết kế SoC phổ biến nhằm rút ngắn
thời gian đưa sản phẩm ra thị trường (time-to-market) [6]. Với phương pháp này, yếu
tố quyết định lớn nhất sẽ được đề cập đó là sự phối hợp truyền thông giữa các thành
phần. Việc thiết kế kiến trúc truyền thông trên chip đòi hỏi phải đáng tin cậy, năng
1
International Technology Roadmap for Semicondutors
- 4lượng thấp và thực thi cao. Vấn đề kết nối sẽ trở thành yếu tố hạn chế với các mục tiêu
đề ra.
Hình 1.1: Hệ thống trên vi mạch [13].
1.2. Các vấn đề truyền thông bên trong chip
Như đã trình bày ở trên, hệ thống trên chip tích hợp các khối chức năng có sẵn
nên việc thiết kế SoC đã trở lên đơn giản hơn nhiều, người thiết kế chỉ việc tích hợp
các lõi và thiết lập sự truyền thông giữa chúng. Vì vậy, phương pháp thiết kế mang lại
hiệu quả cao, rút ngắn chu kỳ thiết kế và góp phần làm giảm giá thành thiết kế. Tuy
nhiên, với hệ thống tích hợp nhiều lõi IP (các lõi này hoạt động song song và độc lập
nhau) sẽ nảy sinh một số vấn đề trong truyền thông trên chip như trễ lan truyền trên
dây và trên các cổng logic, vấn đề về truyền thông cục bộ và toàn cục, rồi vấn đề về
hiệu suất hoạt động,…
Độ trễ: Khi công nghệ thiết kế chip ngày càng phát triển, kích thước tăng, độ
tích hợp ngày càng cao và các ứng dụng đòi hỏi đáp ứng thời gian thực thì vấn đề độ
trễ lại trở lên hết sức quan trọng [4]. Vì vậy, đòi hỏi người thiết kế phải giải quyết các
vấn đề liên quan đến độ trễ đáp ứng trên các dây dẫn (cục bộ và toàn cục) và trên các
cổng logic. Trong đó, trễ trên các cổng logic thường rất nhỏ còn trễ trên đường dây là
rất lớn. Trong các trễ trên dây dẫn lại có sự khác biệt khá lớn giữa dây dẫn cục bộ (là
trễ trên dây dẫn nối bên trong lõi IP) và dây dẫn toàn cục (là trễ trên các dây nối các
lõi IP với nhau). Hơn nữa, trong cùng hệ thống thì độ trễ trên các dây nối lõi IP gần và
- 5IP xa là khác nhau. Vì vậy, các nhà thiết kế cần phải tìm giải pháp để giải quyết vấn đề
về độ trễ.
Đồng bộ toàn cục: Vì quá trình xử lý trong chip được chia nhỏ thành các xử lý
bên trong các lõi IP mà các lõi IP này hoạt động song song và độc lập với nhau (mỗi
lõi IP hoạt động ở một xung clock riêng) nên để đạt được sự đồng bộ toàn cục giữa
các xung clock của các lõi IP với nhau là rất khó. Chính vì vậy, người ta nghĩ ra một
giải pháp mới gọi là hệ thống GALS (Globally Asynchronous - Locally Synchronous:
đồng bộ cục bộ - dị bộ toàn cục). Với giải pháp này, mỗi lõi IP trong hệ thống làm việc
với một xung clock riêng và đồng bộ cục bộ trong lõi, còn khi ra khỏi lõi, các lõi IP
làm việc với nhau thông qua các phương thức bắt tay (handshaking) hay hỏi/đáp mà
không liên quan đến các xung clock. Nhờ có giải pháp này mà việc xây dựng các hệ
thống lớn hơn, với nhiều lõi IP làm việc với nhiều xung clock riêng sẽ trở lên dễ dàng
hơn.
Xuất phát từ những lý do trên tạo nên xu hướng thiết kế chia nhỏ các khối xử lý
thành các khối con độc lập nhằm giảm chu kỳ thiết kế. Điều này giúp cho việc kiểm
tra các khối trở lên dễ dàng hơn. Đặc biệt là kiểm tra ở mức trìu tượng thấp của các lõi
IP, ở mức trìu tượng cao của cả hệ thống hay kết hợp cả hai. Khi làm việc ở mức trìu
tượng cao người thiết kế thực hiện các thao tác linh hoạt hơn, uyển chuyển hơn ở mức
trìu tượng thấp. Vì thế, trong thiết kế SoC gồm nhiều lõi IP người thiết kế không chỉ
quan tâm đến vấn đề truyền thông trong lõi mà còn quan tâm đến cả truyền thông toàn
cục, vậy nên phương pháp thiết kế hệ thống trên chip được chuyển đổi từ thiết kế tập
trung sang xử lý đồng thời tại các lõi IP. Tóm lại, việc thiết kế một hệ thống được chia
nhỏ thành các mô đun và được chuyên môn hóa. Từ đó, ta chỉ cần xây dựng kết nối
giữa các mô đun và tạo lên sự truyền thông giữa chúng.
1.3. Từ hệ thống trên chip đến mạng trên chip
Từ khi khái niệm hệ thống trên chip (SoC) được ra đời thì vấn đề truyền thông
cũng dần được giải quyết. Các cấu trúc truyền thông của hệ thống trên chip có thể là
cấu trúc liên kết điểm-điểm (point to point), cấu trúc bus hoặc là kết hợp cả hai cấu
trúc đó (Hình 1.2). Trong đó, cấu trúc liên kết điểm-điểm đơn giản chỉ là nối dây trực
tiếp giữa các lõi IP với nhau để tạo sự liên lạc giữa chúng. Với cấu trúc này cho phép
sử dụng tối đa tài nguyên băng thông (bandwith), độ trễ đáp ứng thấp và rất đơn giản
trong thiết kế, cũng như kiểm tra hay mô hình hóa. Tuy nhiên, khi tăng số lõi IP trên
SoC thì số đường liên kết sẽ tăng theo cấp số mũ. Chính vì vậy mà nảy sinh vấn đề về
không gian thực thi chip và vấn đề định tuyến các kết nối khi thực thi layout.
- 6-
CPU
I/O
I/O
I/O
Memory
CPU
Memory
CPU
I/O
Memory
BUS
CPU
I/O
Memory
Memory
I/O
Memory
CPU
DSP
a. Cấu trúc liên kết điểm-điểm
b. Cấu trúc bus
c. Cấu trúc mạng
Hình 1.2: Cấu trúc truyền thông trên chip.
Để khắc phục các nhược điểm của kết nối điểm-điểm người ta thường kết nối
theo kiểu bus, vì kết nối bus đem lại hiệu quả cao hơn và các thành phần trong hệ
thống có thể chia sẻ chung kênh truyền thông. Bên cạnh đó thì giá thành thực hiện kết
nối bus thấp hơn, đơn giản hơn và dễ thực hiện hơn. Tuy nhiên, khi công nghệ thiết kế
hệ thống phát triển (gồm nhiều lõi IP) thì kết nối theo kiểu bus bộc lộ một số hạn chế
như: khi số đơn vị xử lý trên hệ thống tăng dẫn đến dung lượng truyền thông trên chip
tăng và năng lượng sử dụng cho truyền thông tăng lên đáng kể, đặc biệt là với các bus
chủ. Ngoài ra, nếu kết nối quá nhiều sẽ rất khó khăn trong việc kiểm soát thông tin. Để
hạn chế những nhược điểm này, người ta xây dựng hệ thống bus có sử dụng crossbar
bus như AMBA [2]. Nhưng phương pháp này chưa giải quyết được triệt để các vấn đề
của hệ thống bus.
Một vấn đề nữa xuất phát từ đặc tính vật lý của công nghệ nhỏ hơn micro (deep
submicron). Nếu bus kéo dài thì sẽ xuất hiện những vấn đề không mong muốn như
(hiệu suất thấp; không dự đoán được cách thức hoạt động cũng như thông tin trên bus;
công suất tiêu thụ cao; hiện tượng nhiễu bus ... ). Để hạn chế vấn đề này người ta đưa
ra giải pháp là phân đoạn các bus dài để tránh suy giảm tín hiệu và các bus sẽ được
thực thi như cấu trúc hợp kênh để giảm năng lượng và tăng độ phản ứng. Ý tưởng của
giải pháp này là sử dụng nhiều bus trong cùng một hệ thống và kết nối chúng với nhau
thông qua các cầu bus (bus bridge) [2]. Trong đó, cầu bus là nút định tuyến còn các
bus là các đường liên kết, do đó hình thành nên một mạng truyền thông đơn giản (gồm
có các nút định tuyến và các đường liên kết). Ưu điểm của giải pháp này là giảm đáng
kể số lượng lõi IP và chiều dài các liên kết, nhưng lại khó khăn trong việc quản lý địa
chỉ các lõi IP khi truyền dữ liệu qua các cầu bus. Tuy nhiên, giải pháp này vẫn chưa
loại bỏ được các vấn đề cố hữu thuộc về bản chất của cấu trúc truyền thông dạng bus.
- 7Một vấn đề nữa là trong tương lai gần, kết nối bus sẽ trở thành một rào cản cho
sự phát triển các ứng dụng công nghệ vì rằng chúng ta sẽ rất khó khăn trong việc thiết
kế cũng như kiểm tra truyền thông giữa các tác vụ trong một hệ thống.
Chính vì những nguyên nhân đó, vào năm 1999 đã có một số nhóm nghiên cứu
về phương pháp kết nối và trao đổi thông tin trên các SoC hiện tại và trong tương lai.
Một trong những phương pháp được đề xuất đó là phương pháp truyền thông mạng
trên chip (NoC: Network on Chip). Phương pháp truyền thông NoC ra đời được xem
như một giải pháp đột phá cho vấn đề truyền thông trên chip [11], [5]. Có hai nhận
thức về NoC: thứ nhất NoC là một tập con của SoC, thứ hai NoC là sự mở rộng của
SoC. Trong nhận thức đầu, NoC được định nghĩa như là cấu trúc truyền thông chuyển
tiếp dữ liệu (tức là mạng và các phương thức truy cập). Nhưng trong nhận thức thứ hai
NoC được định nghĩa rộng hơn, bao quanh các vấn đề liên quan tới ứng dụng, cấu trúc
hệ thống và ảnh hưởng của truyền thông hay ngược lại.
1.4. Quy trình thiết kế hệ thống trên chip
Để làm rõ hơn phần thực nghiệm được trình bày về sau, mục này trình bày tóm
lược quy trình thiết kế và chế tại một hệ thông vi mạch hiện tại.
Quy trình thiết kế và chế tạo một hệ thống trên vi mạch cũng giống như quy
trình thiết kế và chế tạo VLSI (Very Large Scale Integration), bao gồm nhiều công
đoạn khác nhau, xuất phát từ yêu cầu bài toán đi đến xây dựng các đặc tả, thiết kế
mạch dựa trên các đặc tả vừa xây dựng… cho đến thực hiện các mặt nạ cho thiết kế,
chế tạo wafer, kiểm tra, đóng vỏ và xuất xưởng. Quy trình thiết kế hệ thống trên chip
có thể được mô tả như Hình 1.3.
Quy trình này có thể chia thành hai giai đoạn chính đó là giai đoạn thiết kế logic
(logical design) và giai đoạn thiết kế vật lý (physical design). Mỗi giai đoạn lại được
chia thành các công đoạn nhỏ hơn nhằm đơn giản và tối ưu quá trình thiết kế.
* Giai đoạn thiết kế logic
Giai đoạn này có thể chia thành 4 bước sau:
Bước 1 (System design): Đây là bước thiết kế đặc biệt quan trọng, ở bước này
người thiết kế phải lý giải được toàn bộ hệ thống mà mình sắp thiết kế. Ngoài ra,
người thiết kế còn phải hiểu rõ nguyên lý hoạt động của toàn hệ thống, các đặc điểm
về công nghệ, tốc độ xử lý mức độ tiêu thụ năng lượng, cách bố trí các chân, các lược
đồ khối, các điều kiện vật lý như kích thước, nhiệt độ, điện áp... Bước này đòi hỏi
- 8người thiết kế phải có sự am hiểu về hệ thống, có kiến thức chuyên môn sâu, rộng và
có nhiều kinh nghiệm trong thiết kế.
Hình 1.3: Quy trình thiết kế một hệ thống trên chip.
Bước 2 (Funcion design): Sau bước thiết kế hệ thống, người thiết kế căn cứ
vào yêu cầu của bài toán thiết kế, sử dụng các ngôn ngữ thiết kế phần cứng như
VHDL, hoặc Verilog-HDL, hoặc System-C… để hiện thực các chức năng logic của
thiết kế. Quá trình thiết kế mà chỉ quan tâm tới chức năng của mạch dựa trên kết quả
tính toán cũng như sự luân chuyển dữ liệu giữa các register (flip-flop) được gọi là thiết
kế mức RTL (Register Transfer Level). Để kiểm tra tính đúng đắn của mạch, người
thiết kế có thể dùng một trong các công cụ mô phỏng như: VCS của hãng Synopsys,
hay ModelSim của hãng Mentor Graphics.
Bước 3 (Synthesis): Bước này có nhiệm vụ tổng hợp các file RTL thành các
cổng (gate) cơ bản (NOT, NAND, XOR, MUX…). Sau đó ghép các cổng đó lại với
- 9nhau để tạo thành các mô-đun lớn hơn, việc tổng hợp tiếp diễn cho đến khi cấu thành
một SoC hoàn chỉnh. Quá trình này được thực hiện nhờ các công cụ hỗ trợ tổng hợp
phần cứng (synthesis tool) của hãng Xilinx hay hãng Altera. Kết quả của quá trình
tổng hợp không là duy nhất mà tùy thuộc vào công cụ hỗ trợ tổng hợp phần cứng, thư
viện các cổng và macro của nhà sản xuất.
Bước 4 (Prelayout simulation): Sau khi tổng hợp các mô-đun lại với nhau, ta
tiến hành mô phỏng trước khi thực hiện layout. Đây là bước cuối cùng của giai đoạn
thiết kế logic, sau khi mô phỏng, kiểm tra thiết kế không có lỗi thì tiến hành thực thi
thiết kế vật lý.
* Giai đoạn thiết kế vật lý
Sau khi thiết kế logic xong ta thu được netlist mô tả thiết kế. Để tạo layout cho
thiết kế ta phải thực hiện giai đoạn thiết kế vật lý. Giai đoạn này được thực hiện qua
các bước sau:
Bước 5 (Floorplanning): Bước này cho phép ta thực hiện việc quy hoạch bề
mặt vi mạch, như việc bố trí các khối chức năng trên vi mạch với mục đích giảm thiểu
không gian thực thi phần cứng và ảnh hưởng nhiễu giữa các khối.
Bước 6 (Place & Route): Sau khi thực hiện quy hoạch các khối chức năng trên
bề mặt vi mạch ta tiến hành đặt chỗ cho từng linh kiện trên vùng quy hoạch để đảm
bảo giảm thiểu không gian thực thi và giảm nhiễu. Sau khi đặt linh kiện xong ta tiến
hành nối dây cho các linh kiện, tức xây dựng các đường liên kết giữa các lối vào/ra của
các linh kiện để tạo thành các netlist của hệ thống.
Bước 7 (Postlayout Simulation): Bước này thường được đảm nhiệm bởi
chuyên gia trong các hãng sản xuất bán dẫn. Họ sử dụng các công cụ tổng hợp để
chuyển netlist sang kiểu data cho layout. Netlist sẽ trở thành bản vẽ cách bố trí các
transistor, capacitor, resistor... Sau khi layout design xong ta tiến hành mô phỏng để
kiểm chứng tính đúng đắn của hệ thống và mức độ đáp ứng của hệ thống so với yêu
cầu đặt ra. Nếu không đạt thì quay lại các bước trên để chỉnh sửa và tối ưu thiết kế.
Bước 8 (Tape out): Sau khi mô phỏng kiểm chứng thành công, toàn bộ quá
trình thiết kế vật lý sẽ được tapeout ra một file (*.gds hay *.gds2 ) và gửi đến nhà máy
sản xuất.
Giai đoạn thiết kế này đòi hỏi người thiết kế phải là các chuyên gia thực thụ, có
nhiều kinh nghiệm trong lĩnh vực này. Ngoài ra, còn cần phải có sự đầu tư về trang
thiết bị chế tạo.
- 10Tóm lại, chương này cho ta một cái nhìn tổng quan về một hệ thống trên vi
mạch và các vấn đề gặp phải trong quá trình thiết kế hệ thống trên vi mạch, sự ra đời
của mô hình mạng trên chip (NoC), và quy trình thiết kế một hệ thống trên vi mạch.
Chương tiếp theo sẽ giới thiệu một mô hình mạng trên chip cụ thể, đồng thời sẽ làm rõ
các khái niệm cơ bản về mạng trên chip.
- 11-
Chương 2.
Mạng trên chip và các khái niệm cơ bản
Chương này giới thiệu tổng quan về mô hình mạng trên chip, các thành phần
cấu thành nên mạng. Các khái niệm cơ bản của mạng trên chip như tôpô mạng, kỹ
thuật truyền thông, cơ chế truyền thông, thuật toán định tuyến, kỹ thuật điều khiển
luồng dữ liệu và tắc nghẽn, chất lượng dịch vụ mạng. Sẽ lần lượt được đề cập nhằm
làm rõ các yêu cầu thiết kế mô hình mạng trên chip về sau. Nội dung của chương được
trình bày trên cơ sở tham khảo tài liệu [1].
2.1. Mạng trên chip
Như đã trình bày trong chương trước, mô hình hệ thống trên chip với cấu trúc
truyền thông bus đã bộc lộ một số hạn chế như kém linh hoạt và khó thực hiện khi số
lượng tài nguyên gia tăng. Vì vậy, mạng trên chip (NoC) ra đời với ý định giải quyết các
khó khăn này bằng cách thực hiện một mạng truyền thông. NoC cho phép chia sẻ tài
nguyên, nâng cao băng thông bằng việc chia sẻ các kênh truyền trên mạng, giảm nhỏ
năng lượng tiêu thụ do các dây dẫn được thu ngắn, việc phân lớp khi thiết kế và khả
năng sử dụng lại các tài nguyên là những đặc điểm thuận lợi khi thiết kế dựa trên NoC.
Cấu trúc của NoC bao gồm các bộ định tuyến mạng (network router), các
đường liên kết giữa các bộ định tuyến (link), bộ phối ghép mạng thích ứng (NA:
Network Adapters) và tài nguyên tính toán (resource) còn được gọi là các lõi IP được
minh họa ở Hình 2.1. Mạng trên chip được hiểu như là sự mở rộng của khái niệm hệ
thống trên chip.
- Bộ định tuyến (Router): là thành phần cơ bản của mạng, thực hiện việc định
tuyến giữa các lối vào và lối ra. Nó có nhiệm vụ tính toán đích đến của dữ liệu, phân
xử các tranh chấp trên đường truyền dữ liệu và cuối cùng truyền dữ liệu theo đường
dẫn đã chọn. Mỗi bộ định tuyến thông thường kết nối một số các liên kết và một hay
nhiều bộ ghép nối mạng NA. Các bộ định tuyến được sắp xếp trong một tôpô mạng và
chúng bắt tay chuyển tiếp và điều khiển luồng dữ liệu giữa các NA.
- 12-
Hình 2.1: Một NoC hai hướng 3×3 [8].
- Bộ phối ghép mạng thích ứng (NA: Network Adapter): cung cấp giao diện
kết nối giữa lõi IP và bộ định tuyến. NA thực hiện đóng gói dữ liệu được cung cấp bởi
IP thành các gói, các gói lại được phân chia thành các đơn vị dữ liệu nhỏ hơn (gọi là
flit) trước khi chúng được gửi vào mạng. Các flit được sử dụng cốt để tối thiểu nhu cầu
sử dụng bộ đệm và dây dẫn trong mạng.
- Các liên kết (Links): là nhóm các dây dẫn song song kết nối giữa các bộ định
tuyến. Độ rộng dữ liệu của các đường liên kết phụ thuộc vào số các dây dẫn bó lại với
nhau và số đường tín hiệu được sử dụng. Trên các đường liên kết, tại một thời điểm
chỉ có một flit dữ liệu được truyền. Các đường liên kết có nhiệm vụ kết nối các bộ
định tuyến với các bộ NA.
2.2. Các khái niệm cơ bản về mạng trên chip
2.2.1.
Tôpô mạng
Tôpô (topology) mạng là cách bố trí của các phần tử trong một hệ thống mạng.
Nó quy định tổ chức vật lý của mạng và do đó thường được mô hình hoá bằng các cấu
trúc hình học. Giống như trong mạng máy tính, tôpô mạng trên chip cũng có nhiều
loại. Hình 2.2 giới thiệu một số tôpô mạng thường dùng cho mạng trên chip.
- 13-
(a)
(d)
(b)
(c)
(e)
Hình 2.2: Các tôpô mạng thường dùng cho mạng trên chip: (a) chordal ring; (b) 2D-mesh; (c)
2D torus; (d) Binary tree; (e) Fat-tree.
* Tôpô mạng chordal ring: thực chất là một tôpô mạng ring (các nút mạng nối
với nhau thành một vòng kín) có bổ sung thêm các dây cung giữa các bộ định tuyến
đối diện (Hình 2.2a). Ưu điểm của tôpô mạng này cho phép hiệu năng truyền thông
cao hơn tôpô mạng ring, nhưng kết nối và định tuyến cũng phức tạp hơn.
* Tôpô mạng 2D-mesh: là một dạng cấu trúc mạng lưới bao gồm m hàng và n cột,
giao của các hàng và cột là các bộ định tuyến (Hình 2.2b). Tôpô này có ưu điểm là dễ
dàng thực thi trên các công nghệ bán dẫn hiện tại, đơn giản trong chiến lược định tuyến,
dễ dàng phát triển, dễ mở rộng mô hình mạng. Nhược điểm có độ trễ đáp ứng cao.
* Tôpô mạng 2D torus: Mạng hình xuyến là một phiên bản cải tiến của mạng
mắt lưới cơ bản. Trong đó phần đầu của cột được kết nối với phần cuối của cột và
phía trái của hàng được kết nối với phía phải của hàng (Hình 2.2c). Mạng hình xuyến
có các bộ định tuyến rất nhỏ và có tính đa dạng đường dẫn. Với tôpô mạng này cho
phép giảm đường kính của mạng và tăng băng thông. Tuy nhiên nó có một số hạn chế
như thực thi trên tôpô mạng này phức tạp hơn, các liên kết nối vòng các bộ định tuyến
phía ngoài dài dẫn đến suy giảm hiệu năng truyền thông và độ trễ đáp ứng cao.
* Tôpô fat-tree: Tôpô mạng hình cây lớn là một tôpô mạng có đường kính rất
nhỏ nên độ trễ đáp ứng cũng giảm đi đáng kể (Hình 2.2e). Nhược điểm của tôpô này là
có sự phân cấp bộ định tuyến và kết nối phức tạp do đó không gian thực thi phần cứng
- Xem thêm -