CN103488462B - 一种改进型8051ip核 - Google Patents
一种改进型8051ip核 Download PDFInfo
- Publication number
- CN103488462B CN103488462B CN201310404966.7A CN201310404966A CN103488462B CN 103488462 B CN103488462 B CN 103488462B CN 201310404966 A CN201310404966 A CN 201310404966A CN 103488462 B CN103488462 B CN 103488462B
- Authority
- CN
- China
- Prior art keywords
- module
- monocycle
- divider
- modified
- instruction
- 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.)
- Active
Links
Landscapes
- Advance Control (AREA)
Abstract
本发明公开了一种改进型8051IP核,包括ROM模块、译码模块、控制模块、运算模块、RAM模块,相较于现有技术,其具有以下创新:(1)将传统的8051的机器周期改为时钟周期。(2)运算模块使用单周期除法器和单周期乘法器。(3)采用4级流水线技术。(4)将程序存储器ROM位宽由8位扩展为24位。本发明采用全新的24指令位宽架构,可以一次从程序存储器中读出3个字节,从而将标准8051复杂指令集变为精简指令集。同时采用四级流水线技术,提高了指令执行效率。非跳转指令可以在一个时钟周期内完成,跳转指令可以在2个时钟周期完成。单周期乘法器,单周期除法器,与标准8051相比速度提升了48倍。同时占用较少的逻辑资源。根据Dhrystone2.1测试,是传统8051的执行速度的14倍。
Description
技术领域
本发明属于嵌入式CPUIP核研究领域,涉及一种改进型8051IP核。
背景技术
当前FPGA中嵌入式CPU分为硬核和软核,目前嵌入式硬核有高性能cortexA9双核。嵌入式软核有Altera公司的NIOS、Xilinx的MicroBlaze以及改进后的8051IP核,前两个都是免费的IP核,可灵活配置,但是需要用各自的编译器,且编译时间漫长,不便于修改,应用非常少。嵌入式硬核只有高端器件上面才有,不适用于大多数应用要求,且价格昂贵。
随着SOC(SystemOnChip)技术发展,基于IP核的SOC设计有利于增加新功能和缩短上市时间的特点,越来越得到广泛地应用。在单片机家族中MCS-51是一个经典的单片机,由于其占用逻辑资源少,历经30多年至今在FPGA应用中依然应用很广。但传统的8051引入了机器周期,每个机器周期需要12个时钟,每条指令需要不同的机器周期来完成。这严重制约了指令执行效率,使其应用范围局限于低速要求。
因此,寻求一种改进型的8051IP核,使其在价格不增加的情况下还能够实现高速的目的,具有重要实用价值。
发明内容
本发明针对现有8051IP核指令执行效率、工作速度低的不足,提供了一种改进型8051IP核,其基于精简指令集和流水线技术,工作速度和指令执行效率较原有8051都有较大提升。
本发明的目的通过以下的技术方案实现:一种改进型8051IP核,包括ROM模块、译码模块、控制模块、运算模块、RAM模块,所述译码模块采用四级流水线并行分段处理,将每条指令划分为取指译码、取数、运算、回写四个阶段,每一阶段访问不同的数据,四级流水线并行执行。由于每一阶段访问不同的数据,不会造成资源冲突,除跳转指令,其他指令都可以在一个周期内完成。跳转指令只需要两个周期完成,因此速度可以大大提高。
优选的,所述IP核中的基本时间单位采用时钟周期。相较于传统的机器周期,速度更快。
更进一步的,所述ROM模块的位宽为24位,具体是由一个8bit位宽存储体和一个16bit位宽存储体组成,设addr为输入地址,addr8为8位存储体地址,addr16为16位存储体地址,则:
当addr为奇数时:
当addr为偶数时:
最后将两个存储体的输出数据组合成24位数据输出。本发明采用3字节位宽存储器可以一次性读出3个字节指令,对于单字节指令自动省略后面2个字节,对于双字节指令自动省略后面一个字节,对于三字节指令刚好完全满足。这样基于复杂指令集的标准8051指令,可以当作固定3字节长度的精简指令集,能够利用流水线技术提高其指令执行效率。
优选的,所述运算模块采用单周期乘法器和单周期除法器。采用这类运算器,与标准8051相比,速度提升了48倍。
更进一步的,所述单周期除法器采用基-4除法器,每个时钟周期产生2位商,4个该除法器并行运算,每次产生8位商,其计算方法是:
(1)先判断除数是否为0,如果是0则商和余数都返回0,如果除数不是0则进行步骤(2);
(2)根据除数和被除数进行商选择判断,其中q表示商,Dd表示被除数,Ds表示除数,其方法是:
(3)计算余数R=Dd-q×Ds。
作为优选,所述RAM模块分为内部RAM模块、外部RAM模块、特殊功能RAM模块,其中内部RAM模块用于接收运算模块产生的数据,存储需要保存和改写的数据,外部RAM模块用于存储内部RAM模块存放不下的内容,特殊功能RAM模块,用于连接外围模块的寄存器。
更进一步的,所述内部RAM模块采用双口RAM。从而可以同时进行读写操作,解决资源访问冲突问题。同时对输入地址和数据进行缓存,解决数据相关问题。
本发明与现有技术相比,具有如下优点和有益效果:
1、相较于现有8051指令执行效率、工作速度较低,本发明改进型8051IP核基于精简指令集和流水线技术,能够使其工作速度和指令执行效率较原有8051都有较大提升。
2、本发明将传统的8051的机器周期改为时钟周期,同时,运算模块还采用单周期乘法器和单周期除法器,并将ROM位宽由8位扩展为24位,从而可使运算效率大大提高。
3、本发明中的除法器采用基-4除法器,与传统8051单片机除法器相比提高了48倍。
附图说明
图1为本发明整体架构示意图;
图2为本发明24bit位宽的ROM存储器示意图;
图3为本发明四级流水线示意图;
图4为本发明单周期除法器示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
如图1所示,本实施例改进型8051IP核,主要包括ROM模块、译码模块、控制模块、运算模块、内部RAM模块、外部RAM模块、特殊功能RAM模块,其中:
ROM模块,用于存储程序代码。通过编译软件将程序编译生成的16进制代码下载到该ROM中,上电后CPU将从地址0开始依次读取ROM中的指令并送往译码器进行处理。
译码模块,用于接收待处理指令,根据当前指令第一个字节判断指令类型、指令有效字节数,然后产生控制信号送往控制模块。
控制模块,用于接收译码器产生的控制信号,产生读控制信号完成取操作数步骤、跳转指令的判断、以及跳转地址的计算,并接收外部输入中断信号请求,将运算数据和运算类型送往运算模块进行处理。
运算模块,用于接收控制模块产生的数据,对送来的操作数进行逻辑运算或算术运算,将计算的结果送到数据总线上进行下一步操作。
内部RAM模块,用于接收运算模块产生的数据,存储需要保存和改写的数据,为了满足流水线要求,内部RAM采用双口RAM可以同时进行读写操作,解决资源访问冲突问题。同时对输入地址和数据进行缓存,解决数据相关问题。
外部RAM模块,针对内部RAM空间小而进行扩展的外部空间,引入流水线后对外部RAM的访问周期只需要一个,传统的8051对外部存储访问需要24个时钟周期。
特殊功能RAM模块,用于连接外围模块的寄存器,如定时器模块、中断器模块、串口模块、电源控制模块、以及自定义功能模块。
本实施例中ROM模块,其位宽为24位,由一个8bit位宽和一个16bit位宽存储体组成,该模块可以将传统8051复杂指令集变为精简指令集。在一个时钟下可以读取3个字节指令,对于单字节指令后面两个字节自动省略,对已双字节指令后面一个字节自动省略,对于三字节指令则刚好合适。将读取的完整指令送往译码器进行处理。具体如图2所示,根据输入地址信号,分别计算出两个存储体的输入地址,其中addr为输入地址,addr8为8位存储体地址,addr16为16位存储体地址,其计算方法是:
当addr为奇数时:
当addr为偶数时:
最后将两个存储体的输出数据组合成24位数据输出。
如图3所示,本实施例译码模块采用四级流水线结构并行分段处理,每条指令划分为取指译码、取数运算、回写四个阶段。这四个阶段对访问资源不相冲突,如图中指令1、2、3、4分别所示,可以并行执行。除跳转指令,所有指令都可以在一个时钟内完成。而传统8051单片机一次只能执行一条指令的一个阶段,使其效率非常低,
本实施例中的运算模块采用单周期乘法器和单周期除法器,其中运算模块中单周期除法器采用的是基-4除法器,其处理过程如图4所示,每次时钟运算产生2位商,将8位数据分成4个两位数据并行进行,则一个时钟可以产生一次完整的8位数据运算,与传统8051单片机除法器相比提高了48倍。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (5)
1.一种改进型8051IP核,其特征在于,包括ROM模块、译码模块、控制模块、运算模块、RAM模块,所述译码模块采用四级流水线并行分段处理,将每条指令划分为取指译码、取数、运算、回写四个阶段,每一阶段访问不同的数据,四级流水线并行执行;
所述运算模块采用单周期乘法器和单周期除法器;
所述单周期除法器采用基-4除法器,每个时钟周期产生2位商,4个该除法器并行运算,每次产生8位商,其计算方法是:
(1)先判断除数是否为0,如果是0则商和余数都返回0,如果除数不是0则进行步骤(2);
(2)根据除数和被除数进行商选择判断,其中q表示商,Dd表示被除数,Ds表示除数,其方法是:
(3)计算余数R=Dd-q×Ds。
2.根据权利要求1所述的改进型8051IP核,其特征在于,所述IP核中的基本时间单位采用时钟周期。
3.根据权利要求1所述的改进型8051IP核,其特征在于,所述ROM模块的位宽为24位,具体是由一个8bit位宽存储体和一个16bit位宽存储体组成,设addr为输入地址,addr8为8位存储体地址,addr16为16位存储体地址,则:
当addr为奇数时:
当addr为偶数时:
最后将两个存储体的输出数据组合成24位数据输出。
4.根据权利要求1所述的改进型8051IP核,其特征在于,所述RAM模块分为内部RAM模块、外部RAM模块、特殊功能RAM模块,其中内部RAM模块用于接收运算模块产生的数据,存储需要保存和改写的数据,外部RAM模块用于存储内部RAM模块存放不下的内容,特殊功能RAM模块,用于连接外围模块的寄存器。
5.根据权利要求4所述的改进型8051IP核,其特征在于,所述内部RAM模块采用双口RAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310404966.7A CN103488462B (zh) | 2013-09-06 | 2013-09-06 | 一种改进型8051ip核 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310404966.7A CN103488462B (zh) | 2013-09-06 | 2013-09-06 | 一种改进型8051ip核 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103488462A CN103488462A (zh) | 2014-01-01 |
CN103488462B true CN103488462B (zh) | 2016-04-13 |
Family
ID=49828722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310404966.7A Active CN103488462B (zh) | 2013-09-06 | 2013-09-06 | 一种改进型8051ip核 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103488462B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783053A (zh) * | 2019-01-16 | 2019-05-21 | 中科亿海微电子科技(苏州)有限公司 | 一种fpga实现可变位宽除法的方法及装置 |
CN111083202B (zh) * | 2019-11-28 | 2021-03-26 | 中科驭数(北京)科技有限公司 | Tcp/ip加速器多连接交互方法和装置 |
CN110970075A (zh) | 2019-12-02 | 2020-04-07 | 武汉新芯集成电路制造有限公司 | 存储结构及其擦除方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671797B1 (en) * | 2000-02-18 | 2003-12-30 | Texas Instruments Incorporated | Microprocessor with expand instruction for forming a mask from one bit |
EP0849671B1 (en) * | 1996-12-20 | 2004-05-12 | Texas Instruments Incorporated | A method for utilizing a multi-word instruction register during debugging of a data processing system |
CN1516001A (zh) * | 2003-01-08 | 2004-07-28 | 上海海尔集成电路有限公司 | 一种新型risc流水线微控制器构架及其操作方法 |
CN101118485A (zh) * | 2007-09-18 | 2008-02-06 | 成都方程式电子有限公司 | 一种8051微控制器指令流水系统及实现方法 |
CN101299185A (zh) * | 2003-08-18 | 2008-11-05 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微处理器构架及指令实现方式 |
CN101339498A (zh) * | 2007-07-05 | 2009-01-07 | 华东师范大学 | 采用risc结构的单片机 |
-
2013
- 2013-09-06 CN CN201310404966.7A patent/CN103488462B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0849671B1 (en) * | 1996-12-20 | 2004-05-12 | Texas Instruments Incorporated | A method for utilizing a multi-word instruction register during debugging of a data processing system |
US6671797B1 (en) * | 2000-02-18 | 2003-12-30 | Texas Instruments Incorporated | Microprocessor with expand instruction for forming a mask from one bit |
CN1516001A (zh) * | 2003-01-08 | 2004-07-28 | 上海海尔集成电路有限公司 | 一种新型risc流水线微控制器构架及其操作方法 |
CN101299185A (zh) * | 2003-08-18 | 2008-11-05 | 上海海尔集成电路有限公司 | 一种基于cisc结构的微处理器构架及指令实现方式 |
CN101339498A (zh) * | 2007-07-05 | 2009-01-07 | 华东师范大学 | 采用risc结构的单片机 |
CN101118485A (zh) * | 2007-09-18 | 2008-02-06 | 成都方程式电子有限公司 | 一种8051微控制器指令流水系统及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103488462A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI731893B (zh) | 具有載入索引和預提取聚集操作之處理器、方法及系統 | |
CN107250993B (zh) | 向量缓存行写回处理器、方法、系统和指令 | |
US8904153B2 (en) | Vector loads with multiple vector elements from a same cache line in a scattered load operation | |
TWI730016B (zh) | 用於跨步分散運算的指令與邏輯的處理器、方法及系統 | |
US10579535B2 (en) | Defragmented and efficient micro-operation cache | |
JP5933011B2 (ja) | ストライド機能を有するベクトルロード演算/ストア演算を提供する命令及びロジック | |
CN102750133B (zh) | 支持simd的32位三发射的数字信号处理器 | |
JP5930558B2 (ja) | ストライド機能及びマスク機能を有するベクトルロード及びベクトルストアを提供する命令及びロジック | |
KR101817459B1 (ko) | 1들을 최하위 비트들이 되도록 풀링하면서 비트들을 좌측으로 시프팅하기 위한 명령어 | |
US20120060016A1 (en) | Vector Loads from Scattered Memory Locations | |
TW201802668A (zh) | 可中斷及可重啟矩陣乘法指令、處理器、方法和系統 | |
TW201732581A (zh) | 用於載入索引與集中操作的指令及邏輯 | |
TWI721021B (zh) | 用於致能旗標操作的移除及重建之處理器、非暫時性機器可讀取媒體及計算系統 | |
US20170177429A1 (en) | Hardware apparatuses and methods for memory corruption detection | |
CN105453071A (zh) | 用来提供向量族群计数功能的方法、设备、指令和逻辑 | |
CN108475199B (zh) | 用于执行密钥值查找指令的处理设备 | |
CN105359129A (zh) | 用于提供用于基因组测序和比对的族群计数功能的方法、装置、指令以及逻辑 | |
US10275242B2 (en) | System and method for real time instruction tracing | |
TWI595413B (zh) | 用以提供在遮罩暫存器與通用暫存器或記憶體間的轉換之指令及邏輯(二) | |
TWI590079B (zh) | 用於處理計算的向量格式的指令及邏輯 | |
CN103488462B (zh) | 一种改进型8051ip核 | |
CN111752533A (zh) | 用于矩阵运算的加速器系统和方法 | |
US9229874B2 (en) | Apparatus and method for compressing a memory address | |
CN103186977B (zh) | 微处理器中实现遥控信号发射指令控制的电路结构 | |
US20190102199A1 (en) | Methods and systems for executing vectorized pythagorean tuple instructions |
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 |