CN106991073B - 用于向量运算的数据读写调度器及保留站 - Google Patents
用于向量运算的数据读写调度器及保留站 Download PDFInfo
- Publication number
- CN106991073B CN106991073B CN201610038178.4A CN201610038178A CN106991073B CN 106991073 B CN106991073 B CN 106991073B CN 201610038178 A CN201610038178 A CN 201610038178A CN 106991073 B CN106991073 B CN 106991073B
- Authority
- CN
- China
- Prior art keywords
- vector
- write
- instruction
- read
- data
- 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
- 238000007781 pre-processing Methods 0.000 claims description 50
- 238000000034 method Methods 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Abstract
Description
Claims (33)
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810455211.2A CN108595371B (zh) | 2016-01-20 | 2016-01-20 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
CN201610038178.4A CN106991073B (zh) | 2016-01-20 | 2016-01-20 | 用于向量运算的数据读写调度器及保留站 |
PCT/CN2016/078576 WO2017124649A1 (zh) | 2016-01-20 | 2016-04-06 | 用于向量运算的数据读写调度器及保留站 |
US16/039,605 US10223115B2 (en) | 2016-01-20 | 2018-07-19 | Data read-write scheduler and reservation station for vector operations |
US16/183,603 US10521228B2 (en) | 2016-01-20 | 2018-11-07 | Data read-write scheduler and reservation station for vector operations |
US16/183,612 US10496404B2 (en) | 2016-01-20 | 2018-11-07 | Data read-write scheduler and reservation station for vector operations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610038178.4A CN106991073B (zh) | 2016-01-20 | 2016-01-20 | 用于向量运算的数据读写调度器及保留站 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810455211.2A Division CN108595371B (zh) | 2016-01-20 | 2016-01-20 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106991073A CN106991073A (zh) | 2017-07-28 |
CN106991073B true CN106991073B (zh) | 2020-06-05 |
Family
ID=59361385
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810455211.2A Active CN108595371B (zh) | 2016-01-20 | 2016-01-20 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
CN201610038178.4A Active CN106991073B (zh) | 2016-01-20 | 2016-01-20 | 用于向量运算的数据读写调度器及保留站 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810455211.2A Active CN108595371B (zh) | 2016-01-20 | 2016-01-20 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
Country Status (3)
Country | Link |
---|---|
US (3) | US10223115B2 (zh) |
CN (2) | CN108595371B (zh) |
WO (1) | WO2017124649A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595371B (zh) * | 2016-01-20 | 2019-11-19 | 北京中科寒武纪科技有限公司 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
CN106557332A (zh) * | 2016-11-30 | 2017-04-05 | 上海寒武纪信息科技有限公司 | 一种指令生成过程的复用方法及装置 |
CN114020482A (zh) | 2017-06-02 | 2022-02-08 | 伊姆西Ip控股有限责任公司 | 数据写入的方法和设备 |
CN108958801B (zh) * | 2017-10-30 | 2021-06-25 | 上海寒武纪信息科技有限公司 | 神经网络处理器及使用处理器执行向量最大值指令的方法 |
CN109960605A (zh) * | 2019-04-01 | 2019-07-02 | 江苏华存电子科技有限公司 | 一种支持部分写的ecc内存及数据部分写入的方法 |
CN110007966A (zh) * | 2019-04-10 | 2019-07-12 | 龚伟峰 | 一种降低内存读取乱序的方法 |
CN110780921B (zh) * | 2019-08-30 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置、存储介质及电子装置 |
CN114022148B (zh) * | 2021-12-24 | 2022-04-22 | 杭州趣链科技有限公司 | 基于区块链的交易冲突检测方法、装置、设备和存储介质 |
CN115454693B (zh) * | 2022-08-30 | 2023-11-14 | 昆仑芯(北京)科技有限公司 | 写后读异常的检测方法、装置、控制器、处理器及介质 |
CN117609152B (zh) * | 2023-10-27 | 2024-09-06 | 广州致远仪器有限公司 | 一种数据回读方法、装置、设备及存储介质 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60134974A (ja) * | 1983-12-23 | 1985-07-18 | Hitachi Ltd | ベクトル処理装置 |
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
US4722049A (en) * | 1985-10-11 | 1988-01-26 | Unisys Corporation | Apparatus for out-of-order program execution |
CA2027799A1 (en) * | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
US5418973A (en) * | 1992-06-22 | 1995-05-23 | Digital Equipment Corporation | Digital computer system with cache controller coordinating both vector and scalar operations |
US5701488A (en) * | 1995-06-07 | 1997-12-23 | Motorola, Inc. | Method and apparatus for restoring a target MCU debug session to a prior state |
US6477683B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
US6594748B1 (en) * | 2001-11-09 | 2003-07-15 | Lsi Logic Corporation | Methods and structure for pipelined read return control in a shared RAM controller |
US20030149841A1 (en) * | 2002-01-23 | 2003-08-07 | Middleton Peter Guy | Management of caches in a data processing apparatus |
JP3988144B2 (ja) * | 2004-02-23 | 2007-10-10 | 日本電気株式会社 | ベクトル処理装置、及び、追い越し制御回路 |
JP5278336B2 (ja) * | 2008-02-15 | 2013-09-04 | 日本電気株式会社 | プログラム並列化装置、プログラム並列化方法及びプログラム並列化プログラム |
US8627017B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Read and write monitoring attributes in transactional memory (TM) systems |
CN101593097B (zh) * | 2009-05-22 | 2011-07-27 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
CN102012872B (zh) * | 2010-11-24 | 2012-05-02 | 烽火通信科技股份有限公司 | 一种用于嵌入式系统的二级缓存控制方法及装置 |
US20120296623A1 (en) * | 2011-05-20 | 2012-11-22 | Grayskytech Llc | Machine transport and execution of logic simulation |
CN102360344B (zh) * | 2011-10-10 | 2014-03-12 | 西安交通大学 | 矩阵处理器及其指令集和嵌入式系统 |
CN102377682B (zh) * | 2011-12-12 | 2014-07-23 | 西安电子科技大学 | 基于定长单元存储变长分组的队列管理方法及设备 |
CN102609378B (zh) * | 2012-01-18 | 2016-03-30 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN102629238B (zh) * | 2012-03-01 | 2014-10-29 | 中国人民解放军国防科学技术大学 | 支持向量条件访存的方法和装置 |
US9575753B2 (en) * | 2012-03-15 | 2017-02-21 | International Business Machines Corporation | SIMD compare instruction using permute logic for distributed register files |
US9684601B2 (en) * | 2012-05-10 | 2017-06-20 | Arm Limited | Data processing apparatus having cache and translation lookaside buffer |
KR101666032B1 (ko) * | 2012-05-31 | 2016-10-14 | 한국전자통신연구원 | 로드 가능한 모듈에 대한 가상화 지원 방법 및 장치 |
CN102750133B (zh) * | 2012-06-20 | 2014-07-30 | 中国电子科技集团公司第五十八研究所 | 支持simd的32位三发射的数字信号处理器 |
CN102932265B (zh) * | 2012-11-06 | 2015-06-17 | 福建星网锐捷网络有限公司 | 数据缓存管理装置和方法 |
US20140129806A1 (en) * | 2012-11-08 | 2014-05-08 | Advanced Micro Devices, Inc. | Load/store picker |
CN103135945B (zh) * | 2013-03-25 | 2014-11-26 | 中国人民解放军国防科学技术大学 | 用于ssd的多通道动态读写调度方法 |
CN103488563B (zh) * | 2013-09-05 | 2017-04-12 | 龙芯中科技术有限公司 | 并行程序的数据竞争检测方法、装置及多核处理系统 |
US20150205721A1 (en) * | 2014-01-22 | 2015-07-23 | Advanced Micro Devices, Inc. | Handling Reads Following Transactional Writes during Transactions in a Computing Device |
CN104391820B (zh) * | 2014-11-25 | 2017-06-23 | 清华大学 | 基于fpga的通用浮点矩阵处理器硬件结构 |
US10996959B2 (en) * | 2015-01-08 | 2021-05-04 | Technion Research And Development Foundation Ltd. | Hybrid processor |
CN104699465B (zh) * | 2015-03-26 | 2017-05-24 | 中国人民解放军国防科学技术大学 | 向量处理器中支持simt的向量访存装置和控制方法 |
CN108595371B (zh) * | 2016-01-20 | 2019-11-19 | 北京中科寒武纪科技有限公司 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
-
2016
- 2016-01-20 CN CN201810455211.2A patent/CN108595371B/zh active Active
- 2016-01-20 CN CN201610038178.4A patent/CN106991073B/zh active Active
- 2016-04-06 WO PCT/CN2016/078576 patent/WO2017124649A1/zh active Application Filing
-
2018
- 2018-07-19 US US16/039,605 patent/US10223115B2/en active Active
- 2018-11-07 US US16/183,612 patent/US10496404B2/en active Active
- 2018-11-07 US US16/183,603 patent/US10521228B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190073221A1 (en) | 2019-03-07 |
US20180321943A1 (en) | 2018-11-08 |
US10223115B2 (en) | 2019-03-05 |
WO2017124649A1 (zh) | 2017-07-27 |
US10521228B2 (en) | 2019-12-31 |
CN108595371B (zh) | 2019-11-19 |
US10496404B2 (en) | 2019-12-03 |
US20190073220A1 (en) | 2019-03-07 |
CN108595371A (zh) | 2018-09-28 |
CN106991073A (zh) | 2017-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991073B (zh) | 用于向量运算的数据读写调度器及保留站 | |
US6038646A (en) | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface | |
US9280348B2 (en) | Decode time instruction optimization for load reserve and store conditional sequences | |
CN111208933B (zh) | 数据访问的方法、装置、设备和存储介质 | |
US11803490B2 (en) | Apparatus and method for data transmission and readable storage medium | |
CN110825437A (zh) | 用于处理数据的方法和装置 | |
EP3857384B1 (en) | Processing sequential inputs using neural network accelerators | |
CN114661353A (zh) | 支持多线程的数据搬运装置及处理器 | |
CN112540792A (zh) | 指令处理方法及装置 | |
US11314510B2 (en) | Tracking load and store instructions and addresses in an out-of-order processor | |
US20140331021A1 (en) | Memory control apparatus and method | |
US20140297956A1 (en) | Arithmetic processing apparatus, information processing apparatus and control method of arithmetic processing apparatus | |
CN117667200A (zh) | 一种risc-v矩阵运算指令的依赖检测方法和装置 | |
US11269642B2 (en) | Dynamic hammock branch training for branch hammock detection in an instruction stream executing in a processor | |
CN109564510B (zh) | 用于在地址生成时间分配加载和存储队列的系统和方法 | |
US10366049B2 (en) | Processor and method of controlling the same | |
CN109298884B (zh) | 一种通用字符操作加速处理硬件装置及控制方法 | |
US20140201505A1 (en) | Prediction-based thread selection in a multithreading processor | |
CN118259970B (zh) | 指令处理方法、装置、系统以及电子设备 | |
CN118708244A (zh) | 指令预取方法、装置、电子设备及存储介质 | |
US11803389B2 (en) | Reach matrix scheduler circuit for scheduling instructions to be executed in a processor | |
CN110347400B (zh) | 编译加速方法、路由单元和缓存 | |
CN114995884A (zh) | 指令退休单元、指令执行单元及相关装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180503 Address after: 100190 room 644, research complex, 6 South Road, Haidian District Science Academy, Beijing. Applicant after: Beijing Zhongke Cambrian Technology Co., Ltd. Address before: 210049 18 Xianlin Road, Ma Qun street, Qixia District, Nanjing, Jiangsu. Applicant before: NANJING AIXI INFORMATION TECHNOLOGY CO., LTD. |
|
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |