KR101949417B1 - 프로세서, 명령어 생성 장치 및 방법 - Google Patents
프로세서, 명령어 생성 장치 및 방법 Download PDFInfo
- Publication number
- KR101949417B1 KR101949417B1 KR1020110128591A KR20110128591A KR101949417B1 KR 101949417 B1 KR101949417 B1 KR 101949417B1 KR 1020110128591 A KR1020110128591 A KR 1020110128591A KR 20110128591 A KR20110128591 A KR 20110128591A KR 101949417 B1 KR101949417 B1 KR 101949417B1
- Authority
- KR
- South Korea
- Prior art keywords
- register
- area
- instruction
- registers
- processor
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
레지스터 물리 주소 기반의 다중 스토어 명령어를 사용하는 장치 및 방법이 제공된다. 본 발명의 일 양상에 따른 프로세서는 다수의 레지스터 데이터를 메모리에 저장하도록 하는 다중 스토어 명령어를 실행할 수 있다. 이 다중 스토어 명령어에는 대상 레지스터들을 지정하기 위한 주소 영역이 포함되는데, 각 주소 영역에는 대상 레지스터들의 번호 또는 목록이 아닌, 대상 레지스터의 물리 주소가 기록된다.
Description
레지스터의 데이터를 메모리에 저장하는 스토어 명령어를 실행하는 프로세서 및 이러한 명령어를 생성하는 기술과 관련된다.
일반적인 마이크로 프로세서는 레지스터와 메모리 간에 데이터를 복사하는 명령(instruction)을 가지고 있다. 레지스터에 있는 값을 메모리에 저장하는 것을 store라고 부르며, 메모리에 있는 값을 레지스터에 저장하는 것을 load라고 부른다.
기본적인 load와 store 명령은 그 대상으로 하나의 메모리 주소와 하나의 레지스터 엔트리만을 선택할 수 있으나, 일부 프로세서들은 복수 개의 레지스터 엔트리와 연속된 복수개의 메모리 주소를 선택할 수 있는 명령을 추가로 가지고 있다. 이러한 명령을 다중 스토어 명령(multiple store instruction)이라고 부를 수 있다.
다중 스토어 명령을 사용하면, 주로 함수 호출(call) 및 복귀(return) 과정에서 빈번하게 사용되는 load 및 store 명령의 개수가 줄어들어 프로그램(code)의 크기를 줄일 수 있다는 장점이 있다. 다중 스토어 명령을 위해서는 대상 레지스터, 즉 메모리에 저장될 데이터를 갖고 있는 레지스터들이 특정되어야 한다. 통상적인 다중 스토어 명령에서는 각 레지스터의 번호 또는 목록에 기초하여 레지스터들을 특정한다. 그러나 레지스터의 번호 또는 목록에 기초하여 대상 레지스터를 지정하면, 매 사이클마다 레지스터 번호를 주소로 변환하는 과정이 필요하다. 이것은 보통 leading one detector와 부가적인 회로를 사용하여 구현하는데, instruction decoder에서 critical path가 되어 프로세서의 동작 속도에 영향을 주거나 pipeline stage 수를 증가시키는 문제점이 있다.
레지스터의 물리 주소를 이용한 다중 스토어 명령어를 사용하는 프로세서, 레지스터의 물리 주소를 이용한 다중 스토어 명령어를 생성하는 장치 및 방법이 제공된다.
본 발명의 일 양상에 따른 프로세서는, 다수의 레지스터의 데이터를 메모리에 저장하기 위한 명령어로서, 각각의 레지스터의 물리 주소가 기록된 제 1 영역을 포함하는 명령어를 실행할 수 있다.
본 발명의 일 양상에 따른 명령어 생성 장치는, 다수의 레지스터의 데이터를 메모리에 저장하기 위한 명령어로서, 각각의 레지스터의 물리 주소가 기록된 제 1 영역을 포함하는 명령어를 생성할 수 있다.
본 발명의 일 양상에 따른 명령어 생성 방법은, 프로그램 코드에서 다수의 레지스터의 데이터를 메모리에 저장하기 위한 코드 영역을 검출하는 단계, 및 검출된 코드 영역에 대응되는 명령어를 생성하되, 각각의 레지스터의 물리 주소를 명령어의 제 1 영역에 매핑하여 명령어를 생성하는 단계를 포함할 수 있다.
한편, 본 발명의 다른 양상에 따라, 명령어는 다수의 레지스터 데이터가 저장될 메모리의 시작 주소 또는 이 시작 주소가 저장된 레지스터의 물리 주소가 기록된 제 2 영역을 더 포함할 수 있다.
또한 본 발명의 또 다른 양상에 따라, 각각의 명령어는 다수의 서브 명령어를 포함할 수도 있다.
개시된 내용에 의하면, 레지스터 주소를 사용하여 레지스터를 선택하기 때문에 레지스터 파일의 엔트리 수가 커도 사용할 수 있다. 또한 레지스터의 값이 메모리에 저장되는 위치의 순서를 자유롭게 선택할 수 있다. 예를 들어 1번, 3번, 7번 레지스터 순서로 저장하는 것과 3번, 1번, 7번 레지스터 순서로 저장하는 것을 구분할 수 있다. 나아가 명령을 디코드하고 레지스터 값을 읽는 과정이 매우 간단하기 때문에, 레지스터 파일의 주소를 계산하기 위한 부가적인 회로가 필요치 않고, 특히 동작 주파수가 높은 프로세서를 설계할 때 적은 파이프라인 스테이지(pipeline stage)로 구현할 수 있다. 또한 한 번에 여러 개의 레지스터 값을 읽기 때문에 여러 개의 로드/스토어 유니트가 있는 경우, 다중 스토어링의 시간을 단축시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 프로세서를 도시한다.
도 2는 본 발명의 일 실시예에 따른 명령어 구조를 도시한다.
도 3은 본 발명의 다른 실시예에 따른 명령어 구조를 도시한다.
도 4는 본 발명의 일 실시예에 따른 명령어 구조와 일반적인 명령어 구조를 비교한다.
도 5는 본 발명의 일 실시예에 따른 명령어 생성 장치를 도시한다.
도 6은 본 발명의 일 실시예에 따른 명령어 생성 장치의 동작을 도시한다.
도 7은 본 발명의 일 실시예에 따른 명령어 생성 방법을 도시한다.
도 2는 본 발명의 일 실시예에 따른 명령어 구조를 도시한다.
도 3은 본 발명의 다른 실시예에 따른 명령어 구조를 도시한다.
도 4는 본 발명의 일 실시예에 따른 명령어 구조와 일반적인 명령어 구조를 비교한다.
도 5는 본 발명의 일 실시예에 따른 명령어 생성 장치를 도시한다.
도 6은 본 발명의 일 실시예에 따른 명령어 생성 장치의 동작을 도시한다.
도 7은 본 발명의 일 실시예에 따른 명령어 생성 방법을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 프로세서를 도시한다.
도 1을 참조하면, 프로세서(100)는 재구성가능(reconfigurable) 프로세서가 될 수 있다. 예를 들어, 프로세서(100)는 VLIW(very long instruction word) 아키텍처 또는 CGA(coarse grained array) 아키텍처 기반의 프로세서가 될 수 있다. 다만 이러한 프로세서는 이해를 돕기 위한 하나의 예에 불과한 것으로, 본 발명에 따른 프로세서가 재구성가능 프로세서에 한정되는 것은 아니다.
도 1에서, 프로세서(100)는 펑션 유니트(function unit)(101), 레지스터 파일(register file)(102), 및 로드/스토어 유니트(load/store unit)(103)를 포함할 수 있다.
펑션 유니트(101)는 각종 산술연산 또는 논리연산을 수행한다. 레지스터 파일(102)은 다수의 레지스터를 포함한다. 펑션 유니트(101)는 레지스터 파일(102)로부터 각종 연산에 필요한 인스트럭션 또는 데이터를 수신한다. 펑션 유니트(101)의 연산 결과는 레지스터 파일(102)에 저장된다. 로드/스토어 유니트(103)는 레지스터 파일(102)에 저장된 데이터를 프로세서(100)의 외부의 메모리(200)에 저장(또는 복사)한다. 레지스터 파일(102)에 있는 데이터를 메모리(200)에 저장(또는 복사)하는 것을 스토어(store)라고 한다. 또한 로드/스토어 유니트(103)는 메모리(200)에 저장된 데이터를 레지스터 파일(102)로 저장(또는 복사)한다. 메모리(200)에 있는 데이터를 레지스터 파일(102)에 저장(또는 복사)하는 것을 로드(load)라고 한다.
본 발명의 일 양상에 따라, 프로세서(100)는 다중 스토어 명령어(multiple store instruction)를 실행할 수 있다. 다중 스토어 명령어란 다수의 레지스터에 있는 각각의 데이터를 메모리의 특정 영역에 저장하는 명령어를 뜻하고, 다중 스토어링(multiple storing)란 다중 스토어 명령어 실행에 따라 다수의 레지스터에 있는 각각의 데이터를 메모리의 특정 영역에 저장하는 행위를 뜻한다. 예를 들어, 어떤 특정한 다중 스토어 명령어는 레지스터 #0(112) 및 레지스터 #2(122)에 있는 데이터를 메모리의 특정 영역(210)에서부터 연속적으로 저장하라는 명령어가 될 수 있다.
본 발명의 또 다른 양상에 따라, 프로세서(100)에서 실행되는 다중 스토어 명령어는 레지스터의 물리 주소를 포함하는 주소 영역을 포함할 수 있다. 예컨대, 프로세서(100)는 다수의 레지스터의 데이터를 메모리에 저장하기 위한 명령어로서, 각각의 레지스터의 물리 주소가 기록된 주소 영역을 포함하는 명령어를 실행하는 것이 가능하다. 다시 말해, 본 실시예에 따른 다중 스토어 명령어에는 대상 레지스터들을 지정하기 위한 주소 영역이 포함되는데, 각 주소 영역에는 대상 레지스터들의 번호 또는 목록이 아닌, 대상 레지스터의 물리 주소가 기록된다.
도 2는 본 발명의 일 실시예에 따른 다중 스토어 명령어의 구조를 도시한다.
도 2를 참조하면, 다중 스토어 명령어(200)는 op code 영역(201)과 주소 영역(202)을 포함할 수 있다.
op code 영역(201)은 다중 스토어 명령어(200)의 의미에 대응되는 부분이다. op code 영역(201)에는 특정한 레지스터의 데이터를 메모리에 저장하라는 지시어가 매핑될 수 있다.
주소 영역(202)은 제 1 영역(212)과 제 2 영역(222)을 포함할 수 있다. 각각의 영역(212, 222)에는 독립적인 레지스터의 물리 주소가 기록될 수 있다. 제 1 영역(212)에는 다중 스토어링에 있어서 타겟 레지스터들의 물리 주소가 기록되고, 제 2 영역(222)에는 타겟 레지스터들의 데이터가 저장될 메모리 영역의 시작 주소를 지정하는 다른 레지스터의 물리 주소가 기록될 수 있다.
예를 들어, 레지스터 #0, #4, 및 #3의 데이터를 메모리의 시작 주소 0x00010000부터 연속으로 저장하기 위한 다중 스토어 명령어의 구조를 살펴보면 다음과 같다. 이때, 메모리의 시작 주소 0x00010000 값은 레지스터 #15에 저장되어 있다고 가정하자. 이러한 경우, 제 1 영역(212)의 Src 1에는 레지스터 #0의 물리 주소가, Src 2에는 레지스터 #4의 물리 주소가, Src 3에는 레지스터 #3의 물리 주소가 각각 기록될 수 있다. 또한 제 2 영역(222)의 Src 0에는 타겟 레지스터의 데이터가 저장될 위치인 메모리의 시작 주소를 저장하고 있는 레지스터 #15의 물리 주소가 기록될 수 있다. 다시 말해, 이와 같은 다중 스토어 명령어를 수신한 로드/스토어 유니트(103, 도 1 참조)는 레지스터 #0, #4, 및 #3의 데이터를 메모리의 특정 영역에 다중 스토어링을 하는 것이 가능하다.
도 3은 본 발명의 다른 실시예에 따른 다중 스토어 명령어 구조를 도시한다.
도 3을 참조하면, 다중 스토어 명령어(300)는 다수의 서브 명령어(300-1, 2, n)를 포함할 수 있다. 각각의 서브 명령어(300-1, 2, n)는 도 2와 마찬가지로 op code 영역(301)과 주소 영역(302)을 포함할 수 있다.
도 3에서, 서브 명령어(300-1, 2, n)의 개수는 특별히 제한되지 아니한다. 또한 각 서브 명령어(300-1, 2, b)의 주소 영역(202)의 각 필드의 개수도 특별히 제한되지 아니한다.
본 발명의 일 양상에 따라, 몇 개 또는 어느 하나의 서브 명령어(300-1)는 메모리 어드레스 영역(310)과 옵션 영역(320)을 포함할 수 있다. 메모리 어드레스 영역(310)은 타겟 레지스터들의 데이터가 저장될 메모리 영역의 시작 주소 또는 이 시작 주소를 저장하고 있는 다른 레지스터의 물리 주소가 기록될 수 있다. 옵션 영역(320)에는 다양한 설정 정보가 기록될 수 있다.
도 4는 본 발명의 일 실시예에 따른 레지스터 물리 주소 기반의 다중 스토어 명령어와 레지스터 번호 기반의 다중 스토어 명령어간의 비교 결과를 도시한다.
도 4를 참조하여, 다중 스토어 명령어가 타겟 레지스터들(메모리로 저장될 데이터를 갖고 있는 레지스터들)을 지정하는 방법으로 각 레지스터의 번호(또는 목록)를 사용하는 방법과 각 레지스터의 물리 주소를 사용하는 방법을 비교하면 다음과 같다. 예를 들어, 8개의 레지스터를 갖는 시스템에서 레지스터 #0, #4, 및 #3의 데이터를 다중 스토어링하기 위해 레지스터 #0, #4, 및 #3을 지정하는 방법을 살펴본다.
비교예의 경우, 참조번호 401와 같이, 레지스터 목록의 각 bit가 특정 레지스터 엔트리와 1:1로 대응되어 있다. 따라서 로드/스토어 유니트가 실제로 그 레지스터에 접근을 하기 위해서는 별도의 디코더가 필요하다. 또한 3개의 레지스터를 지정하기 때문에 디코딩 과정도 최소한 3사이클 이상이 소요된다.
그러나 본 발명의 실시예의 경우, 참조번호 402와 같이, 주소 영역의 각 필드가 특정 레지스터의 물리 주소에 직접 대응되어 있기 때문에, 로드/스토어 유니트가 별도의 디코딩 과정 없이 해당 다중 스토어 명령어를 즉시 이용하는 것이 가능하다.
도 5는 본 발명의 일 실시예에 따른 다중 스토어 명령어 생성 장치를 도시하고, 도 6은 도 5에 따른 다중 스토어 명령어 생성 장치의 동작을 설명하기 위한 참고도면이다. 본 실시예에 따른 다중 스토어 명령어 생성 장치는 도 1의 프로세서에 대응되는 컴파일러의 일 예가 될 수 있으나 반드시 여기에 한정되는 것은 아니다.
도 5 및 도 6을 참조하면, 다중 스토어 명령어 생성 장치(500)는 검출부(501) 및 생성부(502)를 포함할 수 있다. 본 실시예에서, 각각의 검출부(501) 및 생성부(502)는 임의의 프로세서(예컨대, 100, 도 1 참조)의 내부 또는 외부에 설치되는 하드웨어 또는 프로세서(100)에서 실행되는 소프트웨어의 형태로 구현될 수 있다. 또한 각각의 검출부(501) 및 생성부(502)는 도 5에서 도시된 것과 달리 통합되어 구현될 수도 있고, 어느 하나에서 수행되는 기능의 일부가 하나 또는 그 이상의 다른 부분에서 수행되는 것도 가능하다.
검출부(501)는 프로그램 코드에서 다수의 레지스터의 데이터를 메모리에 저장하기 위한 코드 영역을 검출한다. 예컨대, 도 6과 같이, 검출부(501)는 소스 코드(600)에서 다중 스토어링에 대응되는 부분(601)을 검출할 수 있다. 다중 스토어링에 대응되는 부분(601)은 "레지스터 R0 및 R2에 저장된 데이터를 레지스터 R7에 저장된 메모리 주소를 시작 주소로 해서 연속으로 저장하라"이라는 코드 영역이 될 수 있다.
생성부(502)는 검출된 코드 영역에 대응되는 명령어를 생성하되, 각각의 레지스터의 물리 주소를 명령어의 제 1 영역에 매핑하여 명령어를 생성한다. 또한 생성부(502)는 명령어의 제 2 영역에 다수의 레지스터 데이터가 저장될 메모리의 시작 주소 또는 이 시작 주소가 저장된 레지스터의 물리 주소를 매핑하는 것도 가능하다. 예컨대, 도 6과 같이, 생성부(502)는 소정의 주소 영역(602)을 갖는 다중 스토어 명령어(603)를 생성할 수가 있다. 이때, 생성부(502)는 주소 영역(602)에 레지스터 R0, R2, 및 R7의 물리 주소를 각각 매핑해서 다중 스토어 명령어(603)를 생성한다.
도 7은 본 발명의 일 실시예에 따른 다중 스토어 명령어 생성 방법을 도시한다.
도 7을 참조하면, 먼저 프로그램 코드에서 다중 스토어링 코드를 검출한다(701). 다중 스토어링 코드란 다수의 레지스터 데이터를 메모리에 저장하라는 명령 코드를 의미할 수 있다. 예컨대, 검출부(501, 도 5 참조)가 도 6과 같이 다중 스토어링 코드(601)를 검출할 수가 있다.
다중 스토어링 코드가 검출되면, 각 레지스터의 물리 주소를 이용하여 다중 스토어 명령어를 생성한다(702). 예컨대, 생성부(502)가 도 6과 같이 각 레지스터의 물리 주소를 주소 영역(602)으로 갖는 다중 스토어 명령어(603)를 생성할 수가 있다.
이상에서 살펴본 것과 같이, 개시된 실시예에 의하면, 레지스터 주소를 사용하여 레지스터를 선택하기 때문에 레지스터 파일의 엔트리 수가 커도 사용할 수 있다. 또한 레지스터의 값이 메모리에 저장되는 위치의 순서를 자유롭게 선택할 수 있다. 예를 들어 1번, 3번, 7번 레지스터 순서로 저장하는 것과 3번, 1번, 7번 레지스터 순서로 저장하는 것을 구분할 수 있다. 나아가 명령을 디코드하고 레지스터 값을 읽는 과정이 매우 간단하기 때문에, 레지스터 파일의 주소를 계산하기 위한 부가적인 회로가 필요치 않고, 특히 동작 주파수가 높은 프로세서를 설계할 때 적은 파이프라인 스테이지(pipeline stage)로 구현할 수 있다. 또한 한 번에 여러 개의 레지스터 값을 읽기 때문에 여러 개의 로드/스토어 유니트가 있는 경우, 다중 스토어링의 시간을 단축시킬 수 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
Claims (10)
- 프로세서에 있어서,
복수의 레지스터; 및
상기 복수의 레지스터의 데이터를 외부 메모리에 저장하는 다중 스토어 명령을 수행하는 스토어 유닛;를 포함하고,
상기 다중 스토어 명령은 상기 복수의 레지스터의 물리 주소가 기록된 제 1 영역 및 상기 복수의 레지스터의 데이터가 저장될 상기 외부 메모리의 시작 주소가 저장된 레지스터의 물리 주소가 기록된 제2 영역을 포함하는, 프로세서.
- 삭제
- 제 1 항에 있어서, 상기 다중 스토어 명령은
상기 제 1 영역 및 상기 제 2 영역을 갖는 제 1 서브-명령어, 및 상기 제 1 영역을 갖는 제 2 서브-명령어를 포함하는 프로세서.
- 제 1 항에 있어서, 상기 프로세서는
재구성 가능 프로세서인 것을 특징으로 하는 프로세서.
- 제 4 항에 있어서, 상기 재구성 가능 프로세서는
VLIW(very long instruction word) 또는 CGA(coarse-grained array) 아키텍쳐 기반의 프로세서인 것을 특징으로 하는 프로세서.
- 복수의 레지스터의 데이터를 메모리에 저장하기 위한 다중 스토어 명령어로서, 상기 복수의 레지스터의 물리 주소가 기록된 제 1 영역 및 상기 복수의 레지스터의 데이터가 저장될 상기 메모리의 시작 주소가 저장된 레지스터의 물리 주소가 기록된 제2 영역을 포함하는 명령어를 생성하는, 명령어 생성 장치.
- 삭제
- 제 6항에 있어서, 상기 명령어는
상기 제 1 영역 및 상기 제 2 영역을 갖는 제 1 서브-명령어, 및 상기 제 1 영역을 갖는 제 2 서브-명령어를 포함하는 명령어 생성 장치.
- 프로그램 코드에서 복수의 레지스터의 데이터를 메모리에 저장하기 위한 코드 영역을 검출하는 단계; 및
상기 검출된 코드 영역에 대응되는 명령어를 생성하되, 상기 복수의 레지스터의 물리 주소를 상기 명령어의 제 1 영역에 매핑하고, 복수의 레지스터의 데이터가 저장될 외부 메모리의 시작 주소가 저장된 레지스터의 물리 주소를 상기 명령어의 제2 영역에 매핑하여 상기 명령어를 생성하는 단계; 를 포함하는 명령어 생성 방법. - 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110128591A KR101949417B1 (ko) | 2011-12-02 | 2011-12-02 | 프로세서, 명령어 생성 장치 및 방법 |
US13/690,079 US9639357B2 (en) | 2011-12-02 | 2012-11-30 | Processor, apparatus and method for generating instructions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110128591A KR101949417B1 (ko) | 2011-12-02 | 2011-12-02 | 프로세서, 명령어 생성 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130062150A KR20130062150A (ko) | 2013-06-12 |
KR101949417B1 true KR101949417B1 (ko) | 2019-02-20 |
Family
ID=48524864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110128591A KR101949417B1 (ko) | 2011-12-02 | 2011-12-02 | 프로세서, 명령어 생성 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9639357B2 (ko) |
KR (1) | KR101949417B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118642761B (zh) * | 2024-08-14 | 2024-10-15 | 北京开源芯片研究院 | 指令依赖构建方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001202243A (ja) | 1999-04-30 | 2001-07-27 | Hitachi Ltd | データ処理装置 |
JP2003521035A (ja) | 2000-01-18 | 2003-07-08 | クリアウオーター・ネツトワークス・インコーポレイテツド | コンピュータのロードとストア演算を改善する方法および装置 |
US20050193169A1 (en) * | 2004-03-01 | 2005-09-01 | Ahluwalia Manish K. | Memory management |
US20100077156A1 (en) | 2008-03-19 | 2010-03-25 | Tetsuji Mochida | Processor, processing system, data sharing processing method, and integrated circuit for data sharing processing |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3507193B2 (ja) * | 1995-06-06 | 2004-03-15 | 株式会社東芝 | ロード・ストア命令処理装置 |
EP0942357A3 (en) * | 1998-03-11 | 2000-03-22 | Matsushita Electric Industrial Co., Ltd. | Data processor compatible with a plurality of instruction formats |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6578118B1 (en) * | 2000-09-29 | 2003-06-10 | Cypress Semiconductor Corp. | Method and logic for storing and extracting in-band multicast port information stored along with the data in a single memory without memory read cycle overhead |
US7016349B1 (en) * | 2000-09-29 | 2006-03-21 | Cypress Semiconductor Corp. | Logic for generating multicast/unicast address (es) |
US7346881B2 (en) * | 2002-05-13 | 2008-03-18 | Tensilica, Inc. | Method and apparatus for adding advanced instructions in an extensible processor architecture |
US7269709B2 (en) * | 2002-05-15 | 2007-09-11 | Broadcom Corporation | Memory controller configurable to allow bandwidth/latency tradeoff |
JP4026753B2 (ja) * | 2002-07-25 | 2007-12-26 | 株式会社日立製作所 | 半導体集積回路 |
US7275148B2 (en) | 2003-09-08 | 2007-09-25 | Freescale Semiconductor, Inc. | Data processing system using multiple addressing modes for SIMD operations and method thereof |
FR2871908A1 (fr) * | 2004-06-18 | 2005-12-23 | St Microelectronics Sa | Procede et programme d'ordinateur de traitement d'une adresse virtuelle pour la programmation d'un controleur de dma et systeme sur puce associe |
KR100622945B1 (ko) | 2004-07-27 | 2006-09-19 | 재단법인서울대학교산학협력재단 | 복수 로드 스토어 명령어를 통한 코드 크기 감소 방법 |
TW200625097A (en) | 2004-11-17 | 2006-07-16 | Sandbridge Technologies Inc | Data file storing multiple date types with controlled data access |
GB0605349D0 (en) * | 2006-03-17 | 2006-04-26 | Imec Inter Uni Micro Electr | Reconfigurable multi-processing coarse-grain array |
US7461210B1 (en) * | 2006-04-14 | 2008-12-02 | Tilera Corporation | Managing set associative cache memory according to entry type |
US7953457B2 (en) * | 2006-04-28 | 2011-05-31 | Research In Motion Limited | Methods and apparatus for reducing power consumption for mobile devices using broadcast-to-unicast message conversion |
JP5326314B2 (ja) | 2008-03-21 | 2013-10-30 | 富士通株式会社 | プロセサおよび情報処理装置 |
US8136158B1 (en) * | 2008-07-21 | 2012-03-13 | Google Inc. | User-level segmentation mechanism that facilitates safely executing untrusted native code |
JP5241384B2 (ja) * | 2008-08-29 | 2013-07-17 | ルネサスエレクトロニクス株式会社 | 分散共有メモリ型マルチプロセッサ及びデータ処理方法 |
US20110149960A1 (en) * | 2009-12-17 | 2011-06-23 | Media Patents, S.L. | Method and apparatus for filtering multicast packets |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US9280479B1 (en) * | 2012-05-22 | 2016-03-08 | Applied Micro Circuits Corporation | Multi-level store merging in a cache and memory hierarchy |
-
2011
- 2011-12-02 KR KR1020110128591A patent/KR101949417B1/ko active IP Right Grant
-
2012
- 2012-11-30 US US13/690,079 patent/US9639357B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001202243A (ja) | 1999-04-30 | 2001-07-27 | Hitachi Ltd | データ処理装置 |
JP2003521035A (ja) | 2000-01-18 | 2003-07-08 | クリアウオーター・ネツトワークス・インコーポレイテツド | コンピュータのロードとストア演算を改善する方法および装置 |
US20050193169A1 (en) * | 2004-03-01 | 2005-09-01 | Ahluwalia Manish K. | Memory management |
US20100077156A1 (en) | 2008-03-19 | 2010-03-25 | Tetsuji Mochida | Processor, processing system, data sharing processing method, and integrated circuit for data sharing processing |
Non-Patent Citations (1)
Title |
---|
ARM System Developer’s Guide Designing and Optimizing System Software(Andrew N.SLOSS, Dominic SYMES, Chris WRIGHT, MORGAN KAUFMANN PUBLISHERS)(2004)* |
Also Published As
Publication number | Publication date |
---|---|
US9639357B2 (en) | 2017-05-02 |
KR20130062150A (ko) | 2013-06-12 |
US20130145133A1 (en) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100900364B1 (ko) | 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체 | |
KR100953856B1 (ko) | 조건부 명령이 무조건적으로 출력을 제공하는 시스템 및방법 | |
EP2951681B1 (en) | Solution to divergent branches in a simd core using hardware pointers | |
KR102071272B1 (ko) | 벡터처리중 데이터 요소들의 처리순서 제어 | |
KR102484125B1 (ko) | 벡터 처리회로를 사용한 에러 검출 | |
US6631460B1 (en) | Advanced load address table entry invalidation based on register address wraparound | |
KR101417597B1 (ko) | 제로 프레디케이트 브랜치 예측실패에 대한 브랜치 예측실패 거동 억제 | |
KR101738640B1 (ko) | 트레이스 데이터 압축 장치 및 방법 | |
KR101980080B1 (ko) | 데이터 처리장치에 있어서의 어드레스 생성 | |
KR102256188B1 (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
US10013257B2 (en) | Register comparison for operand store compare (OSC) prediction | |
EP2951682B1 (en) | Hardware and software solutions to divergent branches in a parallel pipeline | |
JP3449186B2 (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
KR100983135B1 (ko) | 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법 | |
US9311094B2 (en) | Predicting a pattern in addresses for a memory-accessing instruction when processing vector instructions | |
US8683178B2 (en) | Sharing a fault-status register when processing vector instructions | |
KR101949417B1 (ko) | 프로세서, 명령어 생성 장치 및 방법 | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 | |
JP2004508607A (ja) | 例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法 | |
KR101910934B1 (ko) | 루프의 프롤로그 또는 에필로그의 비유효 연산을 처리하는 장치 및 방법 | |
JP2004287919A (ja) | 演算装置及び制御装置及び演算処理装置及び演算方法及び演算プログラム | |
JP2006004234A (ja) | マイクロプロセッサにおける命令実行制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |