4. Cấu trúc nội dung của luận án
2.6.3. Thiết kế khối điều khiển tần số FC (Frequency Controller)
Hệ thống các tín hiệu đồng hồ (clock) trong thiết kế của chuyển mạch OpenFlow [28] [61]được mô tả tổng quan như trên Hình 2.27.
gtx_clk IBUF gtx_clk_ibuf Grx_clk IBUF rgmii_[0:3]_rxc_ibuf DCM BUFGM UX BUFGM UX tx_rgmii_clk_int tx_grmii_clk90_int feedback tx_clk0 tx_clk90 DCM rgmii_[0:3]_clk0 BUFGM UX rx_rgmii_[0:3]_clk_int feedback rgmii_[0:3]_io cpci_clk
IBUF cpci_clk_ibuf BUFGM UX
cpci_clk_int
core_clk
IBUF core_clk_ibuf DCM BUFGM UX
core_clk_int
feedback core_clk0
nf2_core
Hình 2.27. Hệ thống các tín hiệu clock của chuyển mạch OpenFlow
Các tín hiệu clock bao gồm:
53
Grx_clk: Tín hiệu clock dùng cho việc nhận dữ liệu từ bốn cổng Ethernet
cpci_clk (62.5MHz): Tín hiệu clock dùng cho khối giao tiếp cpci giữa kit NetFPGA
và máy tính thông qua giao diện pci_express.
core_clk: Tín hiệu clock chính dùng cho toàn bộ các khối chức năng của chuyển
mạch OpenFlow. Tín hiệu clock này có tần số 125MHz, đảm bảo băng thông 1Gbps trên mỗi cổng Ethernet. Việc thay đổi tần số hoạt động của chuyển mạch chính là tác động vào tín hiệu clock này.
Khối này có nhiệm vụ sử dụng tín hiệu core_clk_en để phát hiện trạng thái của chuyển mạch và lựa chọn cung cấp tần số cho chuyển mạch ở 125MHz hoặc 0. Việc có thể chuyển tần số về 0 không gây ảnh hưởng tới hệ thống khi bật do hệ thống luôn duy trì một khối phát hiện dữ liệu (trình bày ở phần trước) cho phép bật core_clk. Toàn bộ khối này đều hoạt động ở miền clock khác (gmii_tx_clk) không bị tắt. Sơ đồ cấu tạo khối FC như Hình 2.28. Khối FC gồm 1 khối Digital Clock Managers (DCM), khối BUFGMUX và khối BUFG [61]. 125MHz 0 Io I1 Io core_clk_int CLKIN CLKFB CLK0 BUFG BUFGMUX core_clk_en DCM core_clk = 125MHz Hình 2.28. Sơ đồ khối FC Khối DCM :
Khối DCM chứa một vòng khóa trễ DLL (delay-locked loop) để đồng bộ tín hiệu clock đầu vào CLKIN và tín hiệu clock phản hồi CLKFB. Một DLL chứa các phần tử trễ (individual small buffers) và phần tử logic điều khiển. Các phần tử logic điều khiển chứa một khối phát hiện pha (phase detector) và một khối chọn lọc đường trễ (delay line selector). Bộ phát hiện pha so sánh tín hiệu clock đầu vào (CLKIN) với tín hiệu phản hồi (CLKFB) và đưa vào bộ chọn lọc đường trễ. Tín hiệu clock đầu vào được làm trễ đi để đồng bộ giữ CLKIN và CLKFB. Do vậy, Clock đầu ra về bản chất chính là clock đầu vào được làm trễ.
54 Khối BUFGMUX
Từ tín hiệu core_clk_en, bộ BUFGMUX sẽ lựa chọn tần số để cung cấp cho các khối bên trong chuyển mạch. Nếu core_clk_en = 1 thì tần số đầu ra core_clk_in = 125 MHz, nếu core_clk_en = 0 thì sẽ không cấp tần số đầu ra.
Khối BUFG
Là một khối buffer để phản hồi lại tần số tại đầu ra khối DCM để cung cấp cho đầu vào của nó tại tín hiệu CLKFB. Khi chuyển mạch đang ở trạng thái chờ, core_clk_int sẽ không được cấp và khi đó các khối sử dụng clock này sẽ không hoạt động và đưa về trạng thái sleep để tiết kiệm năng lượng (Các khối màu xanh trên Hình 2.29)
NF2 TOP
NF2 CORE
USER DATA PATH CPU DMA QUEUE NF2 REG GRP
NF2 MAC TX Queue RX Queue
CPCI Bus NF2 DMA NF2 MDIO Data Detector Device ID SRAM Interface Reg Interface FREQUENCY CONTROLLER Core_clk_en Core_clk Core_clk
Hình 2.29. Hệ thống clock được cung cấp bên trong khối nf2_core