CN1082689C - 虚拟多工微处理器 - Google Patents
虚拟多工微处理器 Download PDFInfo
- Publication number
- CN1082689C CN1082689C CN96101213A CN96101213A CN1082689C CN 1082689 C CN1082689 C CN 1082689C CN 96101213 A CN96101213 A CN 96101213A CN 96101213 A CN96101213 A CN 96101213A CN 1082689 C CN1082689 C CN 1082689C
- Authority
- CN
- China
- Prior art keywords
- period
- program
- register
- storehouse
- microprocessor
- 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
Images
Landscapes
- Programmable Controllers (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明涉及一种虚拟多工微处理器(Virtual-multitasked CPU),特别涉及一种可以同时执行多组独立软件程序,且程序间彼此不互相干扰的多工微处理器,它包括有一逻辑运算单元、多时段程序计数器、寄存器、堆栈、时段控制器及一些周边电路。通过本发明的构思,将能安排不同的程序在微处理机内独立执行且彼此不互相干扰,以达到减化程序复杂度,进而缩短开发时程、降低开发费用、生产成本及降低软硬件代价,提供较佳效能。
Description
本发明涉及一种虚拟多工微处理器,特别涉及一种可以同时执行多组独立软件程序,且程序之间彼此不互相干扰的多工微处理器。
现有的微处理器(Central Processing Unit’CPU)是许多电子控制系统的心脏,许多复杂的运算及控制都是由软件程序配合控制器来执行,以达到所需的功能。因此软件及控制器的功能与复杂度决定了整个控制系统的研究开发周期及制作成本,随着集成电路技术的进步,控制器的运算速度亦不断提高。然而,在许多固定的运用上,所须实现的速度并不会随之提高,故而在相同的应用速度要求下,如何利用微处理器速度的进步来降低系统的成本包含软件和硬件的研究开发或硬件的制作成本成为一个很重要的课题。
图1所示为传统的CPU结构图;传统的微处理器CPU内部大致由程序计数器14(Program Counter)、堆栈15(Stack)、逻辑运算单元18(Arithmetic Logic Unit′ALU)、寄存器(Register)等构成。使用者下达指令至CPU执行时,是执行由程序计数器14所指到在程序贮存集13(Instruction ROM)中的指令开始执行,程序贮存集13中贮存了各种指令的组合(即称为程序),每次执行时,CPU依程序计数器的值至指令贮存集13中,取出对应执行的指令放入指令寄存器12(InstructionRegister)中,再由指令解码器11(Instruction Decoder)解出指令中所包含的常数(Literal)、直接位址或寄存器位址(Register Address)等信号,分别送至工作寄存器16(Working Register)、程序计数器14及寄存器集19(Register File)中使用,而逻辑运算单元18则是对来自工作寄存器16及寄存器集19的数据执行运算后,将结果送至数据总线(DATA BUS)或送回工作寄存器16,并依运算结果更改状态寄存器17(Status Register)的值,在指令执行期间,程序计数器14会自动加一,以准备执行指令贮存集13内的下一个指令。若有中断或副程序呼叫发生时,程序计数器的值会推入堆栈15中,而将新的执行位址载入程序计数器14,其后若执行副程序返回的指令,则由堆栈中取回程序计数器14的值,由中断或呼叫的下一个指令继续执行。因CPU中的程序计数器14、堆栈15、寄存器等数据都代表了一个程序执行时的状态,故当另一个程序要执行时(如中断的发生或程序间的切换),程序必须要把目前各寄存器的状态储存,才能开始执行另一个程序,而若有多个程序要同时执行时,储存状态的工作便会占去CPU大部分的时间,程序间的相互影响会使得多工方式变得非常复杂。
为此,本发明的主要目的即是提供一种微处理器设计,它将微处理器视为多个使用。于软件的层次中,多组程序可以彼此不互相干扰地在一个虚拟多工的CPU中执行,且不须额外的多工程序,因此软件的研究开发可以很容易地累积与共用。而硬件方面亦可因集成电路技术的进步,直接降低系统的成本,或提高其效能。
本发明的目及技术手段特点为:
1,本发明系利用分时多工的技术,于工作时间内画分为多个区段,而于该区段中能同时执行多个程序,并由时段控制器(Time slicecontroller)对时段加以分配。
2,本发明系修改关于寄存器等存储单元的结构,使之可以依据不同的时段传出或读入相对的寄存器内容,使各段程序在其所属的时段都能看能各别的寄存器,且不须额外软件的执行,即可达到共用的效果。
3,本发明所包括有程序计数器、寄存器、堆栈,系采用多时段的设计,并均由时段控制器所控制。
4,本发明的时段控制器系以分散的方式至各需要时段的元件中,如一般寄存器、程序计数器等,并直接由前述元件自行产生。
以下将结合附图对本发明的结构设计与操作原理以及发明特征,作一详细说明,其中:
图1为传统的CPU结构图;
图2为本发明时段控制器输出的Sa、Sb实例图;
图3A为传统寄存器的示意图及其时序图;
图3B为本发明多时段寄存器的示意图;
图3C为本发明多时段寄存器的实施例图;
图4A为传统堆栈的实施例图;
图4B为本发明多时段堆栈的实施例方块图;
图4C为传统堆栈控制逻辑的实施例图;
图4D为本发明多时段堆栈控制逻辑的实施例图;
图5A为传统程序计数器的示意图;
图5B为本发明程序计数器的示意图;
图6为本发明的完整实施例图。
图号说明:
11 指令解码器
12 指令寄存器
13 指令贮存集
14 程序计数器
141 逻辑电路
142 寄存器
15 堆栈
151 控制逻辑
1511位址寄存器
1512逻辑电路
152 存储器
16 工作寄存器
17 状态寄存器
18 逻辑运算单元
19 寄存器集
21 多时段指令寄存器
22 多时段程序计数器
221 逻辑电路
222 多时段寄存器
23 堆栈
231 控制逻辑
2311多时段位址寄存器
2312逻辑电路
232 存储器
24 多时段工作寄存器
25 多时段状态寄存器
26 多时段寄存器集
27 时段控制器
为了更方便地阐明本发明与传统结构之间的差异,特将附图作出如上安排,并以比较的方式,分别描述如后:
图2所示为本发明时段控制器输出的Sa、Sb实例图;图中以四个时段(S0、S1、S2、S3)为例,该四个时段分别指定给四个程序(P0、P1、P2、P3),而以如图6所示的时段控制器27来产生Sel信号,来代表目前的CPU资源作不同分配,图中以Sa、Sb为两种分配方式,其中Sa的分配方式为S0、S1、S2及S3都有相同的运算速度,而Sb中的S0则有三倍于S1、S2及S3的速度,在Sel信号产生后,所有共用的寄存器都会依Sel信号启动相对应的寄存器内容。
以下将针对一般寄存器、程序计数器、堆栈等单元的修改,作一详细说明,而各附图中各电路方块的右上角,出现有三角形的黑色部位,即表示其受时段控制器所控制。
图3A所示为传统寄存器的示意图及其时序图;其中R/_W信号是用来决定本周期时读出或写入的动作,en信号是作为启动寄存器(如:指令寄存器12、工作寄存器16、状态寄存器17等),而Data为读出或写入的数据,以附图中的时序而言,该R/_W信号为低(LOW)且en信号为高(HIGH)时,即为数据写入寄存器的动作,而当R/_W信号为高(HIGH)且en信号为低(LOW)时,即为数据读出寄存器的动作。
如图3B所示为本发明多时段寄存器的示意图;其中除原有的信号外(如前述的R/_W、en及Data),另多了一组Sel信号,再如图3C所示,该Sel信号系来自时段控制器,此寄存器(如图6所示多时段指令寄存器21、多时段工作寄存器24、多时段状态寄存器25及多时段寄存器集26)即依据此Sel信号决定应启动何组寄存器内容给此时段所属的程序,因此各时段的程序皆可以利用到各别的寄存器。
图4A所示,为传统堆栈的实施例图;在传统的CPU中,堆栈15可用于直接提供程序使用,或用于程序中的付程序呼叫时储存程序计数器14的内容,是由推入(push)、读出堆栈(pop)及不动作(NOP)等控制信号所决定,其特性为先进后出,亦即数据推入堆栈15后,依次储存于堆栈15的底部,读出时则自堆栈15的顶端依次读出;在本例中真正的数据是经由控制逻辑151存入存储器152中,如图4C所示该控制逻辑151中包含有一位址寄存器1511及一逻辑电路1512,当使用者下达推入、读出堆栈或不动作的指令后,该逻辑电路151即依照控制信号的型式输出R/-W信号至存储器152,同时至位址寄存器1511找出该欲读写的存储器152位址,即能将数据读/写于存储器152中。
同样,本发明将堆栈23的内容分为多组指定给多段程序使用,因此多了一组来自时段控制器的sel信号,来选择启动各时段所属的堆栈23单元(如图4B所示),因此各时段也得到各自的堆栈23空间;在本例中真正的数据是经由控制逻辑231存入存储器232中,如图4D所示该控制逻辑231中包含有一位址寄存器2311及一逻辑电路2312,与传统控制逻辑151的不同点,在于该位址寄存器1511改为多时段位址寄存器2311,当使用者下达推入、读出堆栈或不动作的指令后,该逻辑电路2312即依照控制信号的型式输出R/-W信号至存储器,同时至多时段位址寄存器2311找出该欲读写的存储器232位址,但必须要先获得时段控制器27所传送的sel信号,使此时段得到自己的堆栈23空间,即能将数据读/写于存储器232中。
图5A所示为传统程序计数器的示意图;程序计数器14系用来决定程序中的下一个应执行的程序码在存储器中的位址,因此当在切换程序时,程序计数器14的内容应该被保留,如图所示,该寄存器142为程序计数计14的寄存器,它储存着目前程序码的执行位址,而逻辑电路141则是将寄存器142的内含值加一,以备在周期结束时将下一个执行位址存入寄存器142内,另一方面,堆栈15则是当付程序呼叫(CALL)或付程序返回(RETURN)时,将寄存器142的值推入或读出。
图5B所示,为本发明程序计数器的示意图;由于多时段程序计数器22包括有多时段寄存器222及逻辑电路221,因此本发明于此部份,是将寄存器引用前述的多时段寄存器及前述的堆栈,均由时段控制器27的sel信号所控制。
因此就本发明的整体而言,本发明可以把前述图1的传统微处理器结构依寄存器、堆栈及程序计数器,改变多时段的控制,以达到各时段分别有自己的寄存器及程序执行状态,而彼此不互相影响,而达到CPU分时共用,且不加额外的软件负担,故而不同的程序模组可以很方便地加入CPU的执行中。
图6所示,为本发明的完整实施例图;本发明微处理器内部依上述原理,将寄存器修改为多时段寄存器(如:指令寄存器21、工作寄存器24、状态寄存器25及寄存器集26),程序计数器14修改为多时段程序计数器22、堆栈15亦改为多时段堆栈23,而前述的各多时段单元,是由时段控制器27产生控制的Sel信号;执行程序时,是由时段产生器27将各时段加以分配,使于此时段的程序执行,能拥有自己的寄存器、程序计数器及堆栈,而其它加入执行的程序,同样也拥有各自的寄存器、程序计数器及堆栈,如此程序的执行将不相互影响,以分时多工的方式,达到总线共用、硬件结构共用的目的,进而能使各程序能独立执行。
由前述可见,本发明虚拟多工微处理器的结构,能安排不同的程序在微处理机内独立执行且彼此不互相干扰,以达到减化程序复杂度,进而缩短开发时程、降低开发费用、生产成本及降低软硬件代价,提供较佳效能,确具有产业利用价值。
Claims (2)
1、一种可以同时执行多组独立软件程序,且程序之间彼此互不干扰的虚拟多工微处理器,其特征在于,它包括:
产生一控制信号;
该控制信号是用于控制所有共用的寄存器启动相对应寄存器内容的时段控制器,
执行程序指令运算的逻辑运算单元;
用以解出程序相对应控制码的指令解码器;
依时段控制器以指示目前各程序执行位址的多时段程序计数器;
寄存各程序执行时所需的数据、可为各程序专属或共用、并由时段控制器所控制的多时段寄存器;
由时段控制器所控制并储存相对应时段的多时段程序计数器内含值的多时段堆栈;
其中的时段控制器以分时方式划分成多个时段向其中的多时段程序计数器、多时段寄存器以及多时段堆栈输出一代表对目前微处理器资源作不同分配的控制信号,使于此时段的程序执行,拥有自身的寄存器、程序计数器以及堆栈。
2、按照权利要求1所述的虚拟多工微处理器,其特征在于,所述多时段程序计数器内部设有多个程序寄存器或堆栈,且启动时受所述时段控制器产生的控制信号控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN96101213A CN1082689C (zh) | 1996-02-07 | 1996-02-07 | 虚拟多工微处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN96101213A CN1082689C (zh) | 1996-02-07 | 1996-02-07 | 虚拟多工微处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1156859A CN1156859A (zh) | 1997-08-13 |
CN1082689C true CN1082689C (zh) | 2002-04-10 |
Family
ID=5117017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96101213A Expired - Fee Related CN1082689C (zh) | 1996-02-07 | 1996-02-07 | 虚拟多工微处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1082689C (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85101629A (zh) * | 1985-04-01 | 1987-01-24 | 艾利森电话股份有限公司 | 并联同步运行 |
EP0534579A2 (en) * | 1991-09-19 | 1993-03-31 | Komori Corporation | Plate exchange apparatus for rotary press |
-
1996
- 1996-02-07 CN CN96101213A patent/CN1082689C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85101629A (zh) * | 1985-04-01 | 1987-01-24 | 艾利森电话股份有限公司 | 并联同步运行 |
EP0534579A2 (en) * | 1991-09-19 | 1993-03-31 | Komori Corporation | Plate exchange apparatus for rotary press |
Also Published As
Publication number | Publication date |
---|---|
CN1156859A (zh) | 1997-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101251792B (zh) | 用于受应用管理的线程单元的结构化异常处理 | |
Wang et al. | Smart: A mapreduce-like framework for in-situ scientific analytics | |
CN1296823C (zh) | 可重定目标的编译系统和方法 | |
CN103124957A (zh) | 用于处理单元的动态资源分配的方法和设备 | |
CN112199173B (zh) | 双核cpu实时操作系统数据处理方法 | |
CN102004664A (zh) | 一种空间飞行器嵌入式实时操作系统调度方法 | |
CN1940858B (zh) | 媒体播放装置上实现多任务的方法 | |
CN106293736B (zh) | 用于粗粒度多核计算系统的两级编程装置及其计算方法 | |
CN1082689C (zh) | 虚拟多工微处理器 | |
US4837688A (en) | Multi-channel shared resource processor | |
CA1306308C (en) | Task scheduling mechanism for large data processing systems | |
US4974157A (en) | Data processing system | |
US5642523A (en) | Microprocessor with variable size register windowing | |
CN1304088A (zh) | 数据处理装置 | |
CN111125070A (zh) | 一种数据交换方法及平台 | |
Moon et al. | Generalized multiway branch unit for VLIW microprocessors | |
CN116048759A (zh) | 数据流的数据处理方法、装置、计算机和存储介质 | |
CN100454252C (zh) | 一种cpu程序下载多个fpga文件的方法 | |
JP2006099579A (ja) | 情報処理装置及び情報処理方法 | |
CN112068955A (zh) | 一种异构多核平台处理器内的通信优化方法及电子设备 | |
US20030177161A1 (en) | Load balancing with shared data | |
Ercanli et al. | A register file and scheduling model for application specific processor synthesis | |
Benini et al. | A constraint programming approach for allocation and scheduling on the cell broadband engine | |
Zhang | Extending the OpenMP standard for thread mapping and grouping | |
CN1238788C (zh) | 可处理变长数据的先进先出寄存器队列装置及控制方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20020410 Termination date: 20140207 |