KR20130062150A - 프로세서, 명령어 생성 장치 및 방법 - Google Patents

프로세서, 명령어 생성 장치 및 방법 Download PDF

Info

Publication number
KR20130062150A
KR20130062150A KR1020110128591A KR20110128591A KR20130062150A KR 20130062150 A KR20130062150 A KR 20130062150A KR 1020110128591 A KR1020110128591 A KR 1020110128591A KR 20110128591 A KR20110128591 A KR 20110128591A KR 20130062150 A KR20130062150 A KR 20130062150A
Authority
KR
South Korea
Prior art keywords
register
area
memory
instruction
command
Prior art date
Application number
KR1020110128591A
Other languages
English (en)
Other versions
KR101949417B1 (ko
Inventor
권기석
박재언
김석진
Original Assignee
삼성전자주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110128591A priority Critical patent/KR101949417B1/ko
Priority to US13/690,079 priority patent/US9639357B2/en
Publication of KR20130062150A publication Critical patent/KR20130062150A/ko
Application granted granted Critical
Publication of KR101949417B1 publication Critical patent/KR101949417B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD 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

프로세서, 명령어 생성 장치 및 방법{Processor, Apparatus and method for generating instruction}
레지스터의 데이터를 메모리에 저장하는 스토어 명령어를 실행하는 프로세서 및 이러한 명령어를 생성하는 기술과 관련된다.
일반적인 마이크로 프로세서는 레지스터와 메모리 간에 데이터를 복사하는 명령(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은 본 발명의 일 실시예에 따른 명령어 생성 방법을 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 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. 다수의 레지스터의 데이터를 메모리에 저장하기 위한 명령어로서, 상기 각각의 레지스터의 물리 주소가 기록된 제 1 영역을 포함하는 명령어를 실행하는 프로세서.
  2. 제 1 항에 있어서, 상기 명령어는
    상기 다수의 레지스터 데이터가 저장될 메모리의 시작 주소가 저장된 레지스터의 물리 주소가 기록된 제 2 영역을 더 포함하는 프로세서.
  3. 제 2 항에 있어서, 상기 명령어는
    상기 제 1 영역 및 상기 제 2 영역을 갖는 제 1 서브-명령어, 및 상기 제 1 영역을 갖는 제 2 서브-명령어를 포함하는 프로세서.
  4. 제 1 항에 있어서, 상기 프로세서는
    재구성 가능 프로세서인 것을 특징으로 하는 프로세서.
  5. 제 4 항에 있어서, 상기 재구성 가능 프로세서는
    VLIW(very long instruction worde) 또는 CGA(coarse-grained array) 아키텍쳐 기반의 프로세서인 것을 특징으로 하는 프로세서.
  6. 다수의 레지스터의 데이터를 메모리에 저장하기 위한 명령어로서, 상기 각각의 레지스터의 물리 주소가 기록된 제 1 영역을 포함하는 명령어를 생성하는 명령어 생성 장치.
  7. 제 6 항에 있어서, 상기 명령어는
    상기 다수의 레지스터 데이터가 저장될 메모리의 시작 주소가 저장된 레지스터의 물리 주소가 기록된 제 2 영역을 더 포함하는 명령어 생성 장치.
  8. 제 7 항에 있어서, 상기 명령어는
    상기 제 1 영역 및 상기 제 2 영역을 갖는 제 1 서브-명령어, 및 상기 제 1 영역을 갖는 제 2 서브-명령어를 포함하는 명령어 생성 장치.
  9. 프로그램 코드에서 다수의 레지스터의 데이터를 메모리에 저장하기 위한 코드 영역을 검출하는 단계; 및
    상기 검출된 코드 영역에 대응되는 명령어를 생성하되, 상기 각각의 레지스터의 물리 주소를 상기 명령어의 제 1 영역에 매핑하여 상기 명령어를 생성하는 단계; 를 포함하는 명령어 생성 방법.
  10. 제 9 항에 있어서, 상기 명령어를 생성하는 단계는
    상기 명령어의 제 2 영역에 상기 다수의 레지스터 데이터가 저장될 메모리의 시작 주소가 저장된 레지스터의 물리 주소를 매핑하는 과정을 더 포함하는 명령어 생성 방법.
KR1020110128591A 2011-12-02 2011-12-02 프로세서, 명령어 생성 장치 및 방법 KR101949417B1 (ko)

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 true KR20130062150A (ko) 2013-06-12
KR101949417B1 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)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328851A (ja) * 1995-06-06 1996-12-13 Toshiba Corp ロード・ストア命令処理装置及び方法
JP2001202243A (ja) * 1999-04-30 2001-07-27 Hitachi Ltd データ処理装置
JP2003521035A (ja) * 2000-01-18 2003-07-08 クリアウオーター・ネツトワークス・インコーポレイテツド コンピュータのロードとストア演算を改善する方法および装置
KR20050010800A (ko) * 2002-05-13 2005-01-28 텐실리카 인코포레이티드 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치
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 (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7016349B1 (en) * 2000-09-29 2006-03-21 Cypress Semiconductor Corp. Logic for generating multicast/unicast address (es)
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
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328851A (ja) * 1995-06-06 1996-12-13 Toshiba Corp ロード・ストア命令処理装置及び方法
JP2001202243A (ja) * 1999-04-30 2001-07-27 Hitachi Ltd データ処理装置
JP2003521035A (ja) * 2000-01-18 2003-07-08 クリアウオーター・ネツトワークス・インコーポレイテツド コンピュータのロードとストア演算を改善する方法および装置
KR20050010800A (ko) * 2002-05-13 2005-01-28 텐실리카 인코포레이티드 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치
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)

* Cited by examiner, † Cited by third party
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
KR101949417B1 (ko) 2019-02-20
US9639357B2 (en) 2017-05-02
US20130145133A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
TWI423123B (zh) 用於推測性指令之無效的通用分支系統、其方法、其識別器與其電腦可讀取儲存媒體
EP2951681B1 (en) Solution to divergent branches in a simd core using hardware pointers
KR100953856B1 (ko) 조건부 명령이 무조건적으로 출력을 제공하는 시스템 및방법
KR100900364B1 (ko) 인스트럭션 실행 디바이스, 인스트럭션 실행 방법 및 컴퓨터 판독가능 메모리 매체
JP5612148B2 (ja) ゼロ述語分岐予測ミスにおける分岐予測ミス振舞い抑制
US6631460B1 (en) Advanced load address table entry invalidation based on register address wraparound
US8504806B2 (en) Instruction for comparing active vector elements to preceding active elements to determine value differences
KR102379894B1 (ko) 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법
US10013257B2 (en) Register comparison for operand store compare (OSC) prediction
EP2951682B1 (en) Hardware and software solutions to divergent branches in a parallel pipeline
US6772317B2 (en) Method and apparatus for optimizing load memory accesses
KR100983135B1 (ko) 패킷의 의존성 명령을 그룹핑하여 실행하는 프로세서 및 방법
US9311094B2 (en) Predicting a pattern in addresses for a memory-accessing instruction when processing vector instructions
KR20090101061A (ko) 프로세서 및 정보 처리 장치
US8683178B2 (en) Sharing a fault-status register when processing vector instructions
US20120233507A1 (en) Confirm instruction for processing vectors
US11397685B1 (en) Storing prediction entries and stream entries where each stream entry includes a stream identifier and a plurality of sequential way predictions
KR101949417B1 (ko) 프로세서, 명령어 생성 장치 및 방법
JP2002014868A (ja) メモリ参照動作検出機構を有するマイクロプロセッサおよびコンパイル方法
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP2004508607A (ja) 例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法
JPH04264923A (ja) 情報処理装置
KR20130108878A (ko) 루프의 프롤로그 또는 에필로그의 비유효 연산을 처리하는 장치 및 방법

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