时钟方案
使用同步时序单相外部时钟作为时钟方案。时钟周期或者时钟信号是处理器的基本定时单位,相当于两个CP脉冲上升沿之间的时间长度。
每一个周期,都有CP脉冲沿的上升和下降两个事件,通过它来触发同步时序逻辑在每一个流水线级的执行。
这些动作可以分为三类:
1.在时钟的上升沿开始执行,在下一个时钟的上升沿到来时结束。
2.在时钟的上升沿开始执行,在本时钟的下降沿到来时结束。
3.在时钟的下降沿开始执行,在下一个时钟的上升沿到来时结束。
除了在一个时钟周期内完成指令执行之外,有的任务可能需要多个时钟周期才能完成执行。
通常定义一个(流水线)拍来执行这类任务。每一个流水线拍,只有一个存储器访问任务执行。
不带存储器访问的指令在流水线中执行只需要一个时钟周期的时间,带存储器访问的任务可能需要多个时钟周期。非常复杂的存储器访问可能需要多个流水线拍来完成。
每一个流水线级在时钟上升沿由IO_REDAY信号驱动。在起始处,每一个流水线级在时钟上升沿从前一级接收数据,这样流水线可以一直进行下去。
总线协议
处理器的存储器接口是系统环境的边界。通过这个接口,处理器与外部系统连接在一起。
本处理器共支持三种基本的访问模式:读、写和读/写模式。需要在CPU和存储器之间设计一个小的逻辑控制单元。
通过一个由握手协议实现的异步接口,可以使存储器逻辑独立于时间频率的控制之外工作。这样可以使用不同种类的存储器。
对存储器的接口包括nMRQ,nMHS,RnW,ACC_MODE,RMW,ADDR和DATA信号。
信号名称的开头字母n表示低电平有效,用来实现信号从无效到有效的快速转换。
分别是时钟信号、握手信号、模式信号和总线信号。
标号 | 名称 | 方向 | 说明 |
CP | Clock | 输入 | 单相时钟 |
nMRQ
nMHS
|
notMemoryRequest
notMemoryHandshake
|
输出
输入
|
无处理器访问请求
存储器就绪
|
RnW
ACC_MODE
RWM
|
ReadNotWrite
AccessMode
ReadModifyWrite
|
输出
输出
输出
|
读(高电平有效)/写(低电平有效)
字节、半字或字访问
组合读/写访问
|
ADDR
DATA
|
Address bus
Data bus
|
三态
三态
|
访问地址
访问数据
|
每一个存储器访问过程起始于在时钟沿有效的nMRQ信号。表示之前的存储器访问已经完成。
与nMRQ一起,其它的三个模式信号Rnw、ACC_MODE、RWM以及地址值都变成有效值。
在nMHS信号有效时,存储器逻辑接收访问请求。如果nMHS信号无效时,存储器不能被访问。
通过解除nMHS信号,处理器可以结束存储器的访问。这样也就是结束了流水线的MA级,在时钟的下一个上升沿,新的一级流水线开始执行。
存储器访问模式总结
RMW | RnW | 访问模式 |
无效 | 无效 | 写 |
无效 | 有效 | 读 |
有效 | 无效 | 读写访问:写 |
有效 | 有效 | 读写访问:读 |
读协议
正常的读周期(RnW有效、RMW无效),访问模式信号ACC_MODE决定读取数据的宽度。在开始阶段,地址总线上是存储器地址,在信号nMHS无效后表示访问结束。
这个信号可以被看成是处理器IO_READ信号,数据总线上的值而后被送入数据寄存器。
写协议
在正常的写周期(RnW无效、RMW无效)访问模式信号ACC_MODE决定了要写入信号的位宽和写入顺序。
开始时,地址总线上是存储器地址,数据总线上是要写入的数据值,信号nMHS有效表示总线空闲。
如果之前有对存储器的读操作,可以防止存储器和处理器同时驱动数据总线。
如果总线空闲,总线接收来自处理器的数据。
在访问结束时(nMHS信号无效),存储器已经接受到数据,随后处理器放开对总线的控制权。
组合读写协议
自动读写指令SWP在多任务环境下是非常有用的。该指令交换寄存器和存储器中的值,而且支持自动测试以及设置状态或给出确认信号。
Swap指令在一个流水线级中完成两个存储器操作。当RMW信号有效时,读访问随着RnW信号的有效而首先开始执行。
这个访问过程的结束不是将nMRQ置为无效的方法,而是通过RnW信号的翻转来实现的。
翻转后,存储器的控制逻辑通过将nMRQ信号激活,开始在同一个地址上,与前面写操作一样启动存储器的写操作。
通过置nMHS和nMRQ信号无效,结束该指令的执行。虽然nMRQ信号只激活一次,但是整个过程有两个存储器操作。
与之前的访问操作一样,模式信号ACC_MODE控制了写入数据的宽度和写入顺序。
取消存储器访问
处理器可以用推测的方法启动存储器的访问,但不一定完成整个访问过程。
存储器访问可以通过置nMRQ信号为无效而终止。只有存储器读操作可以被取消,这样可以保证存储器数据的完整性。