CN101425053B - 一种cpu周期寄存器的实现方法 - Google Patents
一种cpu周期寄存器的实现方法 Download PDFInfo
- Publication number
- CN101425053B CN101425053B CN2007101767523A CN200710176752A CN101425053B CN 101425053 B CN101425053 B CN 101425053B CN 2007101767523 A CN2007101767523 A CN 2007101767523A CN 200710176752 A CN200710176752 A CN 200710176752A CN 101425053 B CN101425053 B CN 101425053B
- Authority
- CN
- China
- Prior art keywords
- cpu
- register
- cycle
- value
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明是一种CPU周期寄存器的实现方法。在该实现方法中,使用一个移位寄存器作为CPU的周期寄存器,可以达到以下目的:1.简化CPU指令译码逻辑;2.便于在CPU执行过程中插入等待周期,以精确控制CPU执行状态;3.使得CPU在访问慢速存储器时可以插入等待周期,实现高工作频率的CPU与低速存储器之间相匹配、以提高CPU最大工作频率;4.便于实现CPU的低功耗模式。
Description
技术领域
本发明提出了一种CPU周期寄存器的实现方法。该发明适用于集成电路设计领域里的CPUIP核逻辑设计领域。
背景技术
本发明提出了一种CPU周期寄存器的实现方法。在CPU的体系结构里,周期寄存器是一个重要的组成部分,该寄存器指示了CPU当前所处的执行状态,CPU的各个功能模块都需要在周期寄存器的控制下协同地进行动作。对于每条指令,周期寄存器将有不同的变化轨迹,指示着CPU的各个功能模块按特定的逻辑顺序进行动作,以实现指令特定的功能。
常见的CPU执行周期包括:取指周期、译码周期、取操作数周期、指令执行周期、数据回写周期等。有些周期在某些指令里可能不止1个,有些周期在某些指令里则不需要存在。在设计实现CPU时,我们通常需要为每个周期设定一个数值与之对应。周期寄存器即负责保存并维护该数值。CPU的各个功能模块都在周期寄存器的统一指挥下,协调地进行运作。
不同CPU的设计方案里,周期寄存器的实现方法是各不相同的。本发明提出的是一种优化的设计方法。
发明内容
针对上述问题,本发明提出的CPU周期寄存器的设计方法,其主体是一个移位寄存器,移位寄存器的移位操作可以被外界的等待请求信号暂停,暂停期间,周期寄存器各位的数值保持不变;周期寄存器的各个数据位,在任何时刻只有1位的数值为1,其它位的数值均为0;周期寄存器在正常情况下从高位往低位进行移位;周期寄存器的值在CPU的译码阶段结束时被赋初值,该数值里“1”所处的位数反映当前指令的执行周期数目。
该实现方法具体包括以下几个特点:
首先,在该方法中,规定周期寄存器的各个数据位,在任何时刻只有1位的数值为1,其它位的数值均为0。也即,周期寄存器的每一个数据位和一种CPU状态是对应的。CPU内部的译码逻辑,在辨别当前CPU是否处于某特定状态时,不需要辨别周期寄存器所有数据位的数值,而只需要关心对应的数据位是否为1即可。这样将使得CPU的指令译码逻辑大大简化,译码速度也大大提高。其次,CPU在某些情况下,某种执行周期的个数需要延长,例如,ALU模块在执行移位操作时,如果移位次数大于1,则就需要多个执行周期。在该设计方法里,可以使ALU产生一个等待请求信号。译码模块在收到该等待请求信号时,自动停止CPU周期寄存器的移位操作,即可将CPU的当前状态维持为执行周期,直到移位运算结束。这种插入执行周期的实现方法非常简单易行。
再次,该设计方法有利于提高CPU的最大工作频率。工作频率较高的CPU在与慢速存储器进行接口时,由于慢速存储器的访问时间需要很长,而指令译码周期却可以很短,如果将译码周期设计得和取指周期一样长,则CPU的整体工作频率就会下降。为了最大限度地提高CPU的工作频率,我们可以将取指周期长度设计成译码周期的若干倍。这样CPU在取指阶段,可以使用多个时钟周期进行指令的读取,而只使用1个或少数个时钟周期进行译码。
最后,通过设置WaitReq信号有效,可以控制CPU进入低功耗模式。此模式下,CPU周期寄存器的值保持不变,因此CPU的译码逻辑也暂停工作,进而整个CPU的内部状态都基本保持不变,此时CPU的功耗非常低,理想情况下仅有静态功耗产生。
综上所述,通过本发明实现的CPU周期寄存器方法,能够简化CPU指令译码逻辑,便于在CPU执行过程中插入等待周期,以精确控制CPU执行状态,并且使得CPU在访问慢速存储器时可以插入等待周期,实现高工作频率的CPU与低速存储器之间相匹配、以提高CPU工作频率,也便于实现CPU的低功耗模式。
附图说明
图1CPU周期寄存器结构示意图
图2周期寄存器的状态转换示意图
具体实施方式
图1描述了CPU周期寄存器的基本结构。图中假设CPU周期寄存器的位数是7。
1.CPU周期寄存器由7个D触发器和7个多路选择器组成。
2.7个多路选择器的控制端接在一起,由一个信号进行控制。假定该信号的名称为WaitReq。
3.当WaitReq信号无效时,7个D触发器首位相连,即,前一级D触发器的输出端Q接到下一级D触发器的输入端D。最低位触发器的输出端Q接到最高位D触发器的输入端D。此时在系统时钟的作用下,CPU周期寄存器可以自左向右进行移位。
4.当WaitReq信号有效时,7个D触发器的输入端D接到本级D触发器的输出端Q,即,各触发器的值在系统时钟沿处保持不变。也即,WaitReq信号有效时,CPU周期寄存器的值保持不变。
5.图中OtherCtrlLogic表示其它一些有可能影响CPU周期寄存器的控制逻辑。
图2中假设CPU周期寄存器的位数是7。
1.图中方框表示CPU周期寄存器各种可能的状态。可以看出,每个状态的取值只有1位为1,其它各位均为0。
2.图中实弧线和虚弧线表示CPU周期寄存器各种可能的状态转换途径。其中实线标示出了一种实际的状态转换途径。可见,各种状态下,如果WaitReq信号有效,CPU周期寄存器的状态都维持不变。0000001状态是所有状态循环的起点和终点,该状态的下一状态可能是其它6种可能的状态。其它6种状态在WaitReq信号无效时,下一状态值都是通过当前状态值右移1位得到。
对于单周期指令,0000001状态的下一状态仍为0000001,这在图中用SingleCycleInst条件来表示。
本发明实施的关键在于,用数字逻辑设计技术里的状态机设计方法,设计一个“一次热”(One-hot)风格的状态机,正确描述该状态机的状态转化逻辑。
1.状态机的位数定为7bit(仍假设CPU周期寄存器的位数为7bit)。
2.系统复位结束后,状态机的初始状态为0000001。
3.任何状态下,状态机的取值只有1位为1,其余位都为零。
4.当WaitReq信号有效时,状态机的取值保持不变。
5.CPU取出一条新的指令后,CPU周期寄存器的取值为0000001。即,在译码阶段,CPU周期寄存器的取值为0000001。
6.CPU在译码周期,即0000001状态时,CPU的指令译码逻辑决定了下一状态的取值,可能是0000010~1000000这6个值中的某一个,具体取值由当前指令的内容决定。
7.上述七种取值是周期寄存器的有效取值,每一种取值对应状态机的一种有效状态。除此之外的各种取值均为无效取值。周期寄存器状态机实现时,应保证不会产生无效取值。
8.周期寄存器的每种取值,与CPU的某种执行状态对应。例如,周期寄存器的值为0000001时,CPU处于译码周期。
9.除0000001状态外,每一状态的下一状态由WaitReq信号的取值决定。如果WaitReq信号无效,则每一状态的下一状态取值是通过将当前状态值右移1位得到。0000001状态的下一状态由CPU的译码逻辑来决定。对于单周期指令,0000001状态的下一状态仍为0000001。对于多周期指令,0000001状态的下一状态可以是0000010~1000000中的某一个,具体取值视当前指令的总执行周期个数而定。
通过本发明实现的CPU周期寄存器方法,能够简化CPU指令译码逻辑,便于在CPU执行过程中插入等待周期,以精确控制CPU执行状态,并且使得CPU在访问慢速存储器时可以插入等待周期,实现高工作频率的CPU与低速存储器之间相匹配、以提高CPU工作频率,也便于实现CPU的低功耗模式。
以上公开的仅为本发明的几个具体实施例,但本发明的保护范围并不局限于此,任何本领域的技术人员能思之的变化都应落在本发明的保护范围内。
Claims (3)
1.一种CPU周期寄存器的实现方法,其特征在于,CPU周期寄存器的主体是一个移位寄存器,所述移位寄存器的各个数据位,在任何时刻只有1位的数值为1,其它位的数值均为0,CPU周期寄存器的每一个有效取值和一种CPU状态对应;移位寄存器的移位操作能够被外界的等待请求信号暂停,暂停期间,CPU周期寄存器各位的数值保持不变;CPU处于译码周期时,CPU的指令译码逻辑决定了CPU下一状态的取值,除了在译码周期外,CPU每一状态的下一状态由等待请求信号的取值决定,如果等待请求信号无效,则CPU每一状态的下一状态取值通过将当前状态值右移一位得到。
2.如权利要求1所述的CPU周期寄存器的实现方法,其特征在于,CPU周期寄存器在正常情况下从高位往低位进行移位。
3.如权利要求1所述的CPU周期寄存器的实现方法,其特征在于,CPU周期寄存器的值在CPU的译码阶段结束时被赋初值,所述初值里“1”所处的位数反映当前指令的执行周期数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101767523A CN101425053B (zh) | 2007-11-02 | 2007-11-02 | 一种cpu周期寄存器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101767523A CN101425053B (zh) | 2007-11-02 | 2007-11-02 | 一种cpu周期寄存器的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101425053A CN101425053A (zh) | 2009-05-06 |
CN101425053B true CN101425053B (zh) | 2010-08-18 |
Family
ID=40615679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101767523A Expired - Fee Related CN101425053B (zh) | 2007-11-02 | 2007-11-02 | 一种cpu周期寄存器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101425053B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5033001A (en) * | 1986-12-19 | 1991-07-16 | Fujitsu Limited | Dual mode memory read cycle time reduction system which generates read data clock signals from shifted and synchronized trigger signals |
CN1382274A (zh) * | 1999-05-26 | 2002-11-27 | 因芬尼昂技术股份公司 | 微处理机的延迟时隙控制机构 |
CN1725176A (zh) * | 1999-12-30 | 2006-01-25 | 英特尔公司 | 多线程流水线指令解码器的方法和设备 |
-
2007
- 2007-11-02 CN CN2007101767523A patent/CN101425053B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5033001A (en) * | 1986-12-19 | 1991-07-16 | Fujitsu Limited | Dual mode memory read cycle time reduction system which generates read data clock signals from shifted and synchronized trigger signals |
CN1382274A (zh) * | 1999-05-26 | 2002-11-27 | 因芬尼昂技术股份公司 | 微处理机的延迟时隙控制机构 |
CN1725176A (zh) * | 1999-12-30 | 2006-01-25 | 英特尔公司 | 多线程流水线指令解码器的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101425053A (zh) | 2009-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ekanayake et al. | An ultra low-power processor for sensor networks | |
Benini et al. | Selective instruction compression for memory energy reduction in embedded systems | |
CN101523359B (zh) | 具有减小数据高速缓存访问功率的微标签阵列的处理器及其应用 | |
US7788332B2 (en) | Sensor-network processors using event-driven architecture | |
CN103150146B (zh) | 基于可扩展处理器架构的专用指令集处理器及其实现方法 | |
CN101593097B (zh) | 嵌入式同构对称双核risc微处理器的设计方法 | |
CN201083993Y (zh) | 一种微控制器 | |
CN200990088Y (zh) | 一种新型的8位risc微控制器构架 | |
CN105045335A (zh) | 一种内嵌8051ip核的fpga信息处理系统 | |
CN200990087Y (zh) | 一种8位精简指令集微控制器 | |
CN200997136Y (zh) | 内置比较器的微控制器结构 | |
CN100538623C (zh) | 一种8位微控制器 | |
Benini et al. | Reducing power consumption of dedicated processors through instruction set encoding | |
CN101425053B (zh) | 一种cpu周期寄存器的实现方法 | |
CN101286181B (zh) | 基于dw8051核的现场可编程门阵列片上可编程系统 | |
CN101847090B (zh) | 一种rfid智能卡专用微控制器 | |
CN200997135Y (zh) | 内置通用同步异步收发器的微控制器结构 | |
CN100375074C (zh) | 8位嵌入式cpu的ambatm外围接口电路 | |
CN100430890C (zh) | 一种8位risc微控制器 | |
CN106383926A (zh) | 一种基于Cortex‑M系列处理器的指令预取方法及电路 | |
CN101236576B (zh) | 一种适用于异质可重构处理器的互联模型 | |
CN111506531B (zh) | 一种easy-master微码模块及其配置方法 | |
Shi et al. | DSS: Applying asynchronous techniques to architectures exploiting ILP at compile time | |
JP3868454B2 (ja) | シミュレーションモデル | |
CN2588451Y (zh) | 8位新型构架微处理器以及使用该处理器的多用途芯片电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
Address after: 102209 Beijing, Beiqijia, the future of science and technology in the south area of China electronic network security and information technology industry base C building, Patentee after: Beijing CEC Huada Electronic Design Co., Ltd. Address before: 100102 Beijing City, Chaoyang District Lize two Road No. 2, Wangjing science and Technology Park A block 5 layer Patentee before: Beijing CEC Huada Electronic Design Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100818 Termination date: 20161102 |