网站内页降权 关键词排名下降,做类似猪八戒网的网站,wordpress_主题,旅行社的网站建设在追求梦想的旅途中#xff0c;我们常常会遇到崎岖的道路和难以预料的风暴。然而#xff0c;正是这些挑战塑造了我们的坚韧和毅力#xff0c;使我们能够超越自我#xff0c;触及那些看似遥不可及的目标。不要因为一时的困境而气馁#xff0c;也不要因为他人的质疑而动摇自… 在追求梦想的旅途中我们常常会遇到崎岖的道路和难以预料的风暴。然而正是这些挑战塑造了我们的坚韧和毅力使我们能够超越自我触及那些看似遥不可及的目标。不要因为一时的困境而气馁也不要因为他人的质疑而动摇自己的信念。你的价值不由外界定义而是由你内心深处对理想的执着所决定。 想象一下站在高山之巅俯瞰世界的感觉那是经过无数次攀登、滑倒再站起后才能体会到的壮丽景象。每一次的努力都是向着这个目标迈进的一小步无论多么微小的进步都是通向成功的宝贵积累。即使前路漫漫即使希望渺茫心中的火焰也不应熄灭因为它代表着你的热情、你的决心以及你对未来无限的可能。 记住在这漫长的旅途中最重要的是过程而非结果。享受每一个学习的机会珍惜每一段成长的经历让它们成为你心中最宝贵的财富。即使最终没有达到预期的目标但只要你在过程中尽力了、奋斗了那么你就已经赢得了属于自己的胜利。 因此请继续怀揣着梦想勇敢地向前迈进。用你的行动证明给世界看你可以超越一切限制实现心中所愿。因为在你的心中蕴藏着改变世界的无限力量只要你愿意挖掘并释放它没有什么是不可能的。未来正等待着你去书写而你是那个唯一能够创造属于自己辉煌篇章的人。 计算机组成原理资源网
https://www.wenjingketang.com/这里面有ppt课后习题及答案需要的可以自行下载
目录 7.2 总线接口
7.2.1 信息传送方式
同步传输
异步传输
半同步传输
7.2.2 总线接口的基本概念
功能模块详解
7.3 总线仲裁
7.3.1 集中式仲裁
链式查询Daisy Chaining
计数器定时查询
独立请求Independent Request
7.3.2 分布式仲裁
CAN总线仲裁机制
CSMA/CD协议
案例分析与扩展
PCI Express总线
HyperTransport总线
总结 7.2 总线接口
7.2.1 信息传送方式
同步传输
技术细节 同步传输依赖全局时钟信号如CPU主时钟协调所有操作。每个时钟周期完成固定操作如地址发送、数据读写等。时序要求严格所有设备必须同步。
时序图示例
plaintext 时钟周期 | 1 | 2 | 3 | 4 |
地址线 | A | A | B | B |
数据线 | D | D | X | X |
控制线 | Write | Read | Idle | Idle | Verilog代码实现
verilog module sync_transfer (input clk,input [7:0] data_in,output reg [7:0] data_out,input write_en
);reg [7:0] buffer;always (posedge clk) beginif (write_en) beginbuffer data_in; // 写入数据data_out 8bz; // 输出高阻态end else begindata_out buffer; // 读取数据endend
endmodule 案例SDRAM控制器 SDRAM通过同步接口与CPU交互时钟频率为133MHz。每个时钟周期完成一次突发传输Burst Transfer连续传输4/8/16个数据。 异步传输
技术细节 异步传输使用握手协议Req/Ack协调设备。无全局时钟设备根据自身速度调整时序。
时序图示例
plaintext Req: __/‾‾‾\____
Ack: ____/‾‾‾\__
数据有效区间 在Req和Ack同时有效时 C代码模拟握手协议
c void async_transfer(uint8_t* data) {// 发送方set_req_high();while (!check_ack()); // 等待接收方应答send_data(data);set_req_low();while (check_ack()); // 等待接收方释放Ack// 接收方if (req_is_high()) {read_data(data);set_ack_high();while (req_is_high()); // 等待发送方释放Reqset_ack_low();}
} 案例RS-232串口通信 波特率9600bps起始位1位数据位8位停止位1位。通过UART控制器实现异步数据传输。 半同步传输
技术细节 在同步传输基础上添加等待信号Wait允许从设备延长时钟周期。
时序图示例
plaintext 时钟 | 1 | 2 | 3 | 4 |
Wait: | __/‾‾‾\________ |
数据线 | X | D | D | X | VHDL代码实现
vhdl process(clk)
beginif rising_edge(clk) thenif wait_signal 0 thendata_out internal_buffer;else-- 保持当前状态end if;end if;
end process; 案例PCI总线 PCI总线支持半同步传输从设备通过DEVSEL#信号声明响应TRDY#信号控制数据传输节奏。 7.2.2 总线接口的基本概念
功能模块详解 地址译码器 实现方式基于比较器或可编程逻辑阵列PLA。 示例 verilog module address_decoder (input [15:0] addr,output reg select_device1,output reg select_device2
);always (*) beginselect_device1 (addr[15:12] 4b0001);select_device2 (addr[15:12] 4b0010);end
endmodule 数据缓冲器 类型单向缓冲如74LS244、双向缓冲如74LS245。 FIFO实现循环队列管理读写指针。 c #define FIFO_SIZE 16
uint8_t buffer[FIFO_SIZE];
int head 0, tail 0;void fifo_write(uint8_t data) {buffer[head] data;head (head 1) % FIFO_SIZE;
} 错误检测算法 CRC-32计算以太网标准 python def crc32(data):crc 0xFFFFFFFFpoly 0xEDB88320for byte in data:crc ^ bytefor _ in range(8):crc (crc 1) ^ poly if (crc 1) else crc 1return crc ^ 0xFFFFFFFF 7.3 总线仲裁
7.3.1 集中式仲裁
链式查询Daisy Chaining
电路设计
plaintext 仲裁器 → Grant → Device1 → Grant → Device2 → ... → DeviceN
每个设备的Grant输入连接到前一个设备的Grant输出。 优先级问题 固定优先级Device1 Device2 ... DeviceN 故障影响若Device3损坏后续设备无法获得授权。
Verilog实现
verilog module daisy_chain_arbiter (input clk,input [3:0] req,output reg [3:0] grant
);always (posedge clk) begingrant[0] req[0];grant[1] req[1] ~grant[0];grant[2] req[2] ~grant[1];grant[3] req[3] ~grant[2];end
endmodule 计数器定时查询
算法流程 仲裁器维护一个计数器0到N-1循环。 收到请求后从当前计数值开始扫描设备。 第一个遇到请求的设备获得授权。
动态优先级示例
c int current_device 0;int arbitrate(int requests[]) {for (int i 0; i MAX_DEVICES; i) {int device (current_device i) % MAX_DEVICES;if (requests[device]) {current_device (device 1) % MAX_DEVICES;return device;}}return -1; // 无请求
} 独立请求Independent Request
硬件设计 每个设备有独立的Req和Grant线仲裁器使用优先级编码器。
优先级编码器示例4设备
verilog module priority_encoder (input [3:0] req,output reg [1:0] grant
);always (*) begincasex(req)4b1xxx: grant 2b00; // Device0优先级最高4b01xx: grant 2b01;4b001x: grant 2b10;4b0001: grant 2b11;default: grant 2b00;endcaseend
endmodule 7.3.2 分布式仲裁
CAN总线仲裁机制
非破坏性逐位仲裁 每个节点发送ID的同时监听总线。 若发现更高优先级ID二进制0则退出发送。
ID比较逻辑
c // CAN标准ID为11位
#define ID_MASK 0x7FFvoid can_arbitrate(uint16_t my_id) {transmit_id(my_id);for (int i 10; i 0; i--) {bool bit (my_id i) 1;bool bus_bit read_bus_bit();if (bit ! bus_bit) {if (bus_bit 0) {// 检测到更高优先级ID停止发送enter_listen_mode();return;}}}// 仲裁胜利继续发送数据transmit_data();
} CSMA/CD协议
冲突检测与退避算法 发送前监听总线Carrier Sense。 检测到冲突后发送Jam信号。 退避时间计算二进制指数退避0 ~ 2^k -1时隙k为冲突次数。
退避算法代码
python import randomcollision_count 0def backoff_time():max_slots 2 ** min(collision_count, 10) - 1return random.randint(0, max_slots) * slot_time 案例分析与扩展
PCI Express总线
分层协议架构 事务层处理TLPTransaction Layer Packet。 数据链路层错误检测与重传Ack/Nak机制。 物理层差分信号传输支持多通道绑定。
TLP包格式
字段长度字节说明Header12或16包含路由、操作类型等Payload0-4096传输数据ECRC4端到端CRC校验 HyperTransport总线
点对点传输 双向链路上行与下行分离。 基于包的路由直接内存访问DMA和中断传递。 带宽计算 带宽频率×位宽×2双工带宽频率×位宽×2双工 例如1.6GHz × 16位 × 2 6.4GB/s。 总结
总线技术是计算机系统的核心其设计需平衡速度、可靠性和复杂度。现代系统倾向于使用高速串行总线如PCIe和分布式仲裁如以太网而嵌入式领域仍依赖CAN等实时性协议。理解总线接口与仲裁机制是优化系统性能的关键。