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
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2TRƯỜ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ử
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
Trang 3Mụ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
Trang 43.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
Trang 5Danh 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) 2D-mesh; (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
Trang 6Hì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
Trang 7Danh mục các từ viết tắt
AMBA : Advanced Microcontroller Bus Architecture
ADC : Analog Digital Convert
ASIC : Application Specific Integrated Circuit
BE : Best-effort
BoP : Begin of Packet
CUT : Circuit-Under-Test
DAC : Digital Analog Convert
DSP : Digital Signal Processors
EoP : End of Packet
GALS : Globally Asynchronous- Locally Synchronous
QoS : Quality of Service
RAM : Random Access Memory
RF : Radio Frequency
ROM : Read Only Memory
RTL : Register Transfer Level
VHDL : Very High Speed Integrated Circuits HDL
VLSI : Very Large Scale Integration
WH : Wormhole
Trang 8Lờ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
Trang 9Chươ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
Trang 10Chươ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
Trang 11lượ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à
Trang 12IP 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
Trang 13Hì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
Trang 14Mộ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
Trang 15ngườ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
Trang 16nhau để 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
Trang 17Tó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
Trang 18Chươ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
Trang 19Hì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
Trang 20(a) (b) (c)
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
Trang 21cũng tăng lên đáng kể Trong khi đó tôpô nhị phân (dạng cây cơ bản) rất hữu ích cho việc khai thác tính cục bộ của lưu lượng (Hình 2.2d)
2.2.2 Kỹ thuật truyền thông
Để thực hiện truyền thông trên mạng thì ta phải xác định chiến lược cũng như cách thức vận chuyển dữ liệu trên NoC Trong truyền thông có hai kỹ thuật vận chuyển dữ liệu đó là kỹ thuật chuyển mạch kênh (circuit switching) và kỹ thuật chuyển mạch gói (packet switching)
* Kỹ thuật chuyển mạch kênh
Là kỹ thuật thực hiện thiết lập một đường thông tin cố định từ nguồn tới đích, đường thông tin này chỉ được giải phóng khi dữ liệu đã truyền xong hoặc khi có tín hiệu hủy bỏ Kỹ thuật này có ưu điểm là độ tin cậy cao (vì đường thông tin giành riêng nên hầu như không có thất thoát tín hiệu), băng thông tối đa và độ trễ tín hiệu thấp (dùng cho những ứng dụng thời gian thực) Tuy nhiên, nó có nhược điểm là tiêu tốn tài nguyên mạng vì tài nguyên bị chiếm giữ cho đường kết nối trong suốt quá trình truyền tin và chỉ được giải phóng khi việc truyền dữ liệu hoàn tất Nếu trong thời gian kênh truyền bị chiếm dụng, có một nhu cầu truyền thông khác muốn qua một trong các nút của kênh đó phải chờ đến khi kênh truyền được giải phóng mới được truyền Ngoài ra, trong kỹ thuật chuyển mạch kênh này còn có nhược điểm muốn thêm hoặc bớt bộ định tuyến phải sửa đổi lại bộ điều khiển trung tâm
* Kỹ thuật chuyển mạch gói
Là kỹ thuật thực hiện chia dữ liệu thành nhiều gói tin và các gói này được chuyển tiếp theo từng chặng Mỗi gói tin bao gồm thông tin định tuyến và dữ liệu Các gói tin có thể được truyền trên các đường khác nhau và có thể cùng dịch chuyển tại một thời điểm Tại đích đến, các gói tin hợp thành dữ liệu ban đầu Kỹ thuật chuyển mạch này có ưu điểm là tiết kiệm được thời gian truyền và tài nguyên mạng (vì không cần truyền cả gói dữ liệu lớn), tăng hiệu suất đường truyền (vì một kết nối giữa hai bộ định tuyến có thể dùng chung cho nhiều gói, các gói xếp hàng và truyền đi nhanh nhất khi có thể), nếu trong quá trình truyền gặp tắc nghẽn thì gói tin đó có thể đi theo đường khác để đến đích Trong trường hợp, gói tin truyền bị lỗi thì chỉ cần truyền lại gói tin đó thay vì phải truyền lại toàn bộ dữ liệu gốc Ngoài ra, kỹ thuật này không cần
bộ điều khiển trung tâm vì trong các gói tin đã chứa đựng đầy đủ các thông tin định tuyến Tuy nhiên, kỹ thuật này có nhược điểm là trễ đường truyền lớn do qua mỗi bộ định tuyến dữ liệu được lưu trữ, xử lý trước khi truyền đi Vì thế, đòi hỏi các bộ định tuyến phức tạp và độ trễ đáp ứng tín hiệu lớn hơn
Trang 22Tùy theo mức độ yêu cầu của truyền thông mà ta có thể lựa chọn một trong hai
kỹ thuật trên Trong đó, kỹ thuật chuyển mạch gói được sử dụng phổ biến hơn, trên nhiều ứng dụng hơn, còn kỹ thuật chuyển mạch kênh thường dùng trong các ứng dụng đòi hỏi khắt khe về thời gian thực, trễ đáp ứng gần như bằng không
2.2.3 Cơ chế truyền thông
Trong kỹ thuật chuyển mạch gói có ba cơ chế truyền thông là: Lưu trữ và chuyển tiếp, Virtual-Cut-Through và Wormhole [9] Trong các cơ chế truyền thông này, các gói tin được chia thành các flit (đơn vị dữ liệu) nhỏ, trong đó có một flit tiêu
đề (header flit) mang thông tin định tuyến và các flit dữ liệu
* Lưu trữ và chuyển tiếp
Lưu trữ và chuyển tiếp (Store-And-Forward) là cơ chế truyền thông mà chỉ thực hiện truyền thông từ bộ định tuyến này sang bộ định tuyến kia khi đã nhận toàn bộ gói tin ở bộ định tuyến truyền (Hình 2.3) Vì phải lưu trữ toàn bộ gói tin nên cơ chế này đòi hỏi bộ đệm phải lớn, khi kích thước của gói tin tăng thì kích thước của bộ đệm cũng phải mở rộng theo, như vậy sẽ làm cho tổng không gian thực thi trên chip tăng lên Trong khi đó không gian thực thi trên chip là có hạn nên cần phải hạn chế kích thước bộ nhớ đệm
Với cơ chế này có nhược điểm là trễ đáp ứng tại các bộ định tuyến tăng lên (vì phải nhận toàn bộ gói tin mới thực hiện truyền), điều này dẫn đến trễ đáp ứng của toàn
bộ kênh tăng Nhưng cơ chế này có lợi trong các trường hợp các bản tin là ngắn và hay xảy ra
Hình 2.3: Cơ chế truyền thông Lưu trữ và chuyển tiếp (SAF)
* Virtual Cut-Through (VCT)
Để khắc phục nhược điểm của cơ chế lưu trữ và chuyển tiếp, cơ chế truyền thông VCT ra đời với mục đích giảm độ trễ đáp ứng của các gói tin tại từng bộ định
Trang 23tuyến Trong cơ chế này ta không cần chờ nhận đủ gói tin mới thực hiện truyền mà có
thể bắt đầu việc truyền gói tin đến bộ định tuyến tiếp theo ngay khi được phép (Hình
2.4) Vì thế bộ nhớ đệm tại mỗi bộ định tuyến không cần lớn để chứa đủ gói tin mà gói tin có thể lưu trữ trên các bộ định tuyến trung gian giữa bộ định tuyến nguồn và bộ định tuyến đích Nhược điểm của cơ chế này là rất dễ xảy ra tắc nghẽn tại các bộ định tuyến trung gian, nếu bị tắc nghẽn thì bộ định tuyến trung gian chứa gói tin sẽ nằm trong tình trạng bận và không cho phép các đường nối khác sử dụng
Hình 2.4: Cơ chế truyền thông VCT
* Wormhole (WH)
Trong cơ chế truyền thông Wormhole, các flit của gói tin được di chuyển trong
mạng một cách tuần tự Khi bộ định tuyến nhận được flit tiêu đề của gói tin, nó sẽ quyết
định chặng tiếp theo và ngay lập tức chuyển flit tiêu đề đi đến các nút kế tiếp trong mạng (như mô tả ở Hình 2.5) Flit tiêu đề có nhiệm vụ thiết lập đường truyền của gói dữ liệu, các flit còn lại sẽ được truyền trên đường mà flit tiêu đề đã thiết lập Đường truyền này chỉ được đóng lại và giải phóng tài nguyên khi flit cuối cùng của gói tin đi qua
Hình 2.5: Cơ chế truyền thông Wormhole
Trang 24Vì các flit dữ liệu đi theo một đường, việc định tuyến được thực hiện bởi các bộ định tuyến, nên nó có ưu điểm tốn ít không gian bộ đệm (vì không gian bộ đệm chỉ cần lưu trữ một flit) bộ định tuyến trở lên đơn giản, nhỏ gọn và độ trễ đáp ứng nhỏ Vì vậy,
mà cơ chế này được sử dụng rất phổ biến Nhưng nó có nhược điểm là rất dễ xảy ra deadlock, nếu một flit bị chặn thì các flit theo sau cũng sẽ bị chặn theo, dẫn đến tất cả
các bộ định tuyến trong kết nối bị ảnh hưởng Khi đó, các kết nối khác không thể sử dụng được bất kỳ bộ định tuyến nào trên đường dẫn đó Một giải pháp được đặt ra là
sử dụng kênh ảo để chia sẻ gánh nặng cho đường dẫn
Trong ba cơ chế trên, cơ chế định tuyến SAF thường được dùng trong các mạng máy tính vì trong mạng máy tính người ta không quan tâm đến kích thước bộ đệm Nhưng trong NoC, vì không gian thực thi hạn chế nên vấn đề kích thước bộ đệm được quan tâm Bởi vậy, NoC thường sử dụng cơ chế định tuyến Wormhole vì cơ chế này có độ trễ đáp ứng thấp và tốn ít không gian bộ đệm
2.2.4 Thuật toán định tuyến
Trong truyền thông thì thuật toán đóng vai trò hết sức quan trọng, nó có nhiệm
vụ xác định đường đi từ nguồn tới đích cho một gói tin Thuật toán định tuyến tối ưu
sẽ đem lại hiệu năng truyền thông cao Vì vậy, việc nghiên cứu và lựa chọn thuật toán định tuyến sao cho vừa sử dụng tối ưu các liên kết truyền thông vừa đơn giản trong việc thực hiện trên chip là rất cần thiết Có nhiều thuật toán định tuyến được dùng trong thiết kế các mạng trên chip tuy nhiên ta có thể phân thành hai loại sau [1]:
* Thuật toán định tuyến xác định (deterministic) hay còn gọi là thuật toán
định tuyến tĩnh (static routing algorithm)
Trong thuật toán này đường dẫn chỉ được quyết định bởi nguồn và đích của nó
mà không quan tâm đến tải hiện tại của các bộ định tuyến và các liên kết mạng khi đưa
ra quyết định định tuyến Thông thường cơ cấu định tuyến xác định của NoC là định tuyến nguồn và định tuyến X-Y (định tuyến có thứ tự 2 chiều) Trong định tuyến nguồn, lõi nguồn định tuyến cụ thể đích đến của gói tin chứ không phụ thuộc vào bảng định tuyến của các bộ định tuyến Trong định tuyến X-Y, gói tin di chuyển trước hết theo hàng, sau đó là theo cột hướng tới đích, hoặc ngược lại gói tin di chuyển theo cột trước rồi theo hàng hướng tới đích Nó thường được ứng dụng trong trường hợp có thể
dự đoán được quá trình trao đổi dữ liệu trong mạng và thường được dùng cho các mạng trong các hệ thống ứng dụng riêng (ASIC)
* Thuật toán định tuyến thích nghi (adaptive routing) hay còn gọi là thuật
toán định tuyến động (dynamic routing algorithm)
Trang 25Trong thuật toán định tuyến thích ứng, đường truyền định tuyến được lựa chọn trên từng chặng Phương pháp thích ứng bao gồm phương pháp điều phối động, ví dụ như điều phối dựa trên sự tắc nghẽn đường dẫn cục bộ để định tuyến đường đi một cách phù hợp Thuật toán định tuyến thích ứng thường được dùng cho các ứng dụng có lưu lượng mạng không có quy tắc và không đoán trước được, ví dụ như các hệ thống
đa xử lý (MPSoC: Multi-Processor SoC)
2.2.5 Kỹ thuật điều khiển luồng dữ liệu và tắc nghẽn
Điều khiển luồng là cơ chế nhằm đảm bảo việc truyền tin của bên phát không vượt quá khả năng xử lý của bên thu (thực hiện trong môi trường không có lỗi) Như trong truyền thông trên NoC, điều khiển luồng đảm bảo dữ liệu được truyền từ nguồn tới đích thông qua mạng một cách chính xác, tận dụng tối ưu tài nguyên mạng và định trước hiệu suất của dịch vụ truyền thông Để làm được điều đó, kỹ thuật điều khiển luồng phải đảm bảo các vấn đề đồng bộ toàn cục và đồng bộ cục bộ Có nhiều kỹ thuật điều khiển luồng dữ liệu như kỹ thuật dừng và đợi (Stop and Wait), kỹ thuật cửa sổ trượt (Sliding Window), kỹ thuật điều khiển luồng dữ liệu sử dụng kênh ảo Trong
đó, kỹ thuật điều khiển luồng dữ liệu sử dụng kênh ảo là một kỹ thuật điều khiển luồng hữu hiệu, nó có khả năng tránh được sự tắc nghẽn (deadlock), tận dụng dây dẫn triệt
để, cải thiện hiệu suất và cho ra sự khác nhau về chất lượng dịch vụ,… Nên để đảm bảo dữ liệu truyền trong mạng được chính xác, yêu cầu kỹ thuật điều khiển luồng dữ liệu phải tránh deadlock và livelock
Deadlock (còn gọi tắc nghẽn tĩnh): Hiện tượng deadlock xảy ra khi một hoặc
nhiều gói tin (packet) bị treo trong một khoảng thời gian không xác định Hình 2.6 chỉ
ra một trường hợp tắc nghẽn của deadlock Packet 1 được định tuyến từ R1 đến R2 đến R3 và đến R4, còn packet 2 được định tuyến từ R3 đến R4 đến R1 và đến R2 Hai packet này đồng thời được gửi đi, packet 1 xuất phát từ R1 nhưng đến R3 bị chặn lại, còn packet 2 bắt đầu xuất phát R3 nhưng đến R1 cũng bị chặn lại vì các bộ định tuyến này thiếu không gian bộ đệm Chính vì vậy, hai gói tin đều bị chặn không gói nào được truyền đến đích do cả hai gói cùng chờ quá trình giải phóng nguồn tài nguyên bị gói tin còn lại chiếm dụng
Trang 26Hình 2.6: Hiện tượng tắc nghẽn tĩnh (deadlock)
Để tránh deadlock người ta có thể sử dụng kênh ảo như mô tả trong Hình 2.7 Trường hợp trong mạng không có kênh ảo (Hình 2.7a), khi gói tin 1 bị nghẽn thì gói tin 2 không đến được đích vì bị cản trở bởi gói tin 1 Ở Hình 2.7b, trong mạng có kênh
ảo nên gói tin 2 được đưa vào bộ đệm hàng đợi (buffer queue) và truyền đến đích Vì vậy, mà gói tin 1 có bị nghẽn thì luồng dữ liệu 2 vẫn có thể đi qua
(a)
Gói tin 2
Gói tin 1
Gói tin 1 đang bị treo
Điểm đến của gói tin 2
Gói tin 1
(b)
Gói tin 1 đang bị treo
Điểm đến của gói tin 2
Gói tin 2
Bộ đệm được sử dụng bởi gói tin 1
Bộ đệm được sử dụng bởi gói tin 2
Bộ đệm rỗng
Hình 2.7: Sử dụng kênh ảo để tránh deadlock
Livelock (còn gọi tắc nghẽn động): Hiện tượng livelock xảy ra khi một gói tin
muốn truyền trong mạng nhưng bị giữ lại ở một vòng nào đó (spinning around) mà không bao giờ đi đến đích của nó Hiện tượng tắc nghẽn này được minh họa như trong