KR20170060843A - Vliw 인터페이스 장치 및 제어 방법 - Google Patents

Vliw 인터페이스 장치 및 제어 방법 Download PDF

Info

Publication number
KR20170060843A
KR20170060843A KR1020150165555A KR20150165555A KR20170060843A KR 20170060843 A KR20170060843 A KR 20170060843A KR 1020150165555 A KR1020150165555 A KR 1020150165555A KR 20150165555 A KR20150165555 A KR 20150165555A KR 20170060843 A KR20170060843 A KR 20170060843A
Authority
KR
South Korea
Prior art keywords
memory
instruction
module
instruction fetch
fetch request
Prior art date
Application number
KR1020150165555A
Other languages
English (en)
Other versions
KR102276718B1 (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 KR1020150165555A priority Critical patent/KR102276718B1/ko
Priority to US15/360,271 priority patent/US10782974B2/en
Publication of KR20170060843A publication Critical patent/KR20170060843A/ko
Application granted granted Critical
Publication of KR102276718B1 publication Critical patent/KR102276718B1/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with 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
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)

Abstract

VLIW 인터페이스 장치 및 제어 방법이 개시된다. VLIW 인터페이스 장치는 명령어 및 데이터를 저장하는 메모리, 명령어 및 데이터를 처리하는 프로세서를 포함하고, 프로세서는 메모리로부터 명령어을 로드하기 위해 명령어 페치 요청을 출력하는 명령페치모듈, 명령페치모듈에 로드된 명령어을 디코딩하는 디코더, 디코딩된 명령어가 연산 명령어인 경우 연산 기능을 수행하는 산술로직모듈, 명령어 페치 요청 또는 산술로직모듈로부터 입력되는 데이터 페치 요청을 스케쥴링하는 메모리 인터페이스 스케쥴러 및 스케쥴링된 명령어 페치 요청 또는 데이터 페치 요청에 따라 메모리 접근 연산을 수행하는 메모리연산모듈를 포함한다.

Description

VLIW 인터페이스 장치 및 제어 방법{VLIW INTERFACE APPARATUS AND CONTROLLING METHOD THEREOF}
본 발명은 VLIW 인터페이스 장치 및 제어 방법에 관한 것으로, 보다 상세하게는 VLIW 명령어를 처리하는 VLIW 인터페이스 장치 및 제어 방법에 관한 것이다.
VLIW(Very Long Instruction Word)는 명령어가 길다는 것을 의미한다. 즉, VLIW 프로세서는 일반적인 RISC 프로세서에 비해서 많은 명령어를 동일한 사이클에 수행할 수 있는 구조를 가지고 있다. 예들 들어, VLIW 프로세서는 복수 개의 명령어를 동시에 수행할 수 있다.
도 1은 기존의 VLIW 인터페이스 장치의 블록도이다.
기존의 VLIW 인터페이스 장치(10)는 명령어 메모리와 데이터 메모리가 분리되어 있다. 명령어 메모리는 명령어를 저장하고, 명령 페치 모듈의 명령어 페치 요청에 따라 명령어를 명령 페치 모듈로 전송한다. 그리고, 데이터 메모리는 연산과 관련된 데이터를 저장한다. 따라서, 기존의 VLIW 인터페이스 장치(10)는 복수 개의 메모리를 필요로 한다. 기존의 VLIW 인터페이스 장치(10)는 복수의 산술 로직 모듈 및 메모리 연산 모듈을 포함할 수 있다. 그러나, 메모리 연산 모듈은 비싸다. 그리고, 산술 로직 연산에 비해 메모리 연산 횟수가 적기 때문에 일반적으로 VLIW 인터페이스 장치는 산술 로직 모듈에 비해 적은 수의 메모리 연산 모듈을 포함한다. 기존의 VLIW 인터페이스 장치(10)는 산술 로직 모듈은 메모리 연산 모듈을 포함할 수 있다. 그러나, 메모리 연산 모듈의 갯수가 산술 로직 모듈의 갯수보다 적기 때문에 메모리 연산 모듈을 포함하지 않는 산술 로직 모듈도 존재할 수 있다. 기존의 VLIW 인터페이스 장치(10)는 상술한 구조로 되어 있기 때문에 데이터 메모리를 사용하지 않을 때에는 인터페이스 공유를 할 수 없고, 동시에 많은 메모리 연산이 필요한 경우, 연산 처리 속도가 느려지는 문제점이 있다.
본 발명의 목적은 메모리 인터페이스 사용 효율을 높임으로써 성능을 향상시킬 수 있는 VLIW 인터페이스 장치 및 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 VLIW(Very Long Instruction Word) 인터페이스 장치는 명령어(Instruction) 및 데이터를 저장하는 메모리, 상기 명령어 및 데이터를 처리하는 프로세서를 포함하고, 상기 프로세서는 상기 메모리로부터 명령어을 로드하기 위해 명령어 페치 요청을 출력하는 명령페치모듈, 상기 명령페치모듈에 로드된 명령어을 디코딩하는 디코더, 상기 디코딩된 명령어가 연산 명령어인 경우 연산 기능을 수행하는 산술로직모듈(ALU), 상기 명령어 페치 요청 또는 상기 산술로직모듈로부터 입력되는 데이터 페치 요청을 스케쥴링하는 메모리 인터페이스 스케쥴러 및 스케쥴링된 상기 명령어 페치 요청 또는 상기 데이터 페치 요청에 따라 메모리 접근 연산(operation)을 수행하는 메모리연산모듈을 포함한다.
그리고, 상기 명령페치모듈은 상기 메모리연산모듈의 인터페이스를 공유할 수 있다.
또한, 상기 메모리 인터페이스 스케쥴러는 상기 명령어 페치 요청에 따라 상기 명령페치모듈과 상기 메모리연산모듈을 연결하고, 상기 데이터 페치 요청에 따라 상기 산술로직모듈과 상기 메모리연산모듈을 연결할 수 있다.
또한, 상기 프로세서는 상기 메모리연산모듈을 복수 개 포함하고, 상기 메모리 인터페이스 스케쥴러는 상기 복수 개의 메모리연산모듈에 기 할당된 요청의 갯수를 판단하여 기 할당된 요청이 제일 적은 메모리연산모듈에 상기 명령어 페치 요청 또는 상기 데이터 페치 요청을 할당할 수 있다.
그리고, 상기 프로세서는 상기 명령페치모듈을 복수 개 포함하고, 상기 명령페치모듈은 한 사이클 동안 복수 개의 명령어 페치 요청을 상기 메모리 인터페이스 스케쥴러로 출력할 수 있다.
또한, 상기 메모리 인터페이스 스케쥴러는 상기 복수 개의 명령어 페치 요청을 상기 복수 개의 메모리연산모듈에 할당할 수 있다.
또한, 상기 복수 개의 메모리연산모듈은 상기 메모리로부터 복수 개의 명령어를 한 사이클 동안 동시에 로드할 수 있다.
그리고, 상기 프로세서는 상기 산술로직모듈을 복수 개 포함하고, 상기 메모리 인터페이스 스케쥴러는 적어도 하나의 데이터 페치 요청을 기 설정된 우선 순위에 따라 상기 복수 개의 메모리연산모듈에 할당할 수 있다.
한편, 본 발명의 일 실시 예에 따른 VLIW 인터페이스 장치의 제어 방법은 명령어(Instruction) 및 데이터를 저장하는 메모리로부터 명령페치모듈이 명령어를 로드하기 위해 명령어 페치 요청을 출력하는 단계, 상기 명령어 페치 요청에 따라 로드된 명령어를 디코더가 디코딩하는 단계, 상기 디코딩된 명령어가 연산 명령어인 경우 산술로직모듈(ALU)이 연산 기능을 수행하는 단계, 상기 명령어 페치 요청 또는 상기 산술로직모듈로부터 입력되는 데이터 페치 요청을 메모리 인터페이스 스케쥴러가 스케쥴링하는 단계 및 스케쥴링된 상기 명령어 페치 요청 또는 상기 데이터 페치 요청에 따라 메모리연산모듈이 메모리 접근 연산(operation)을 수행하는 단계를 포함한다.
그리고, 상기 스케쥴링하는 단계는 상기 메모리연산모듈의 인터페이스를 공유할 수 있다.
또한, 상기 스케쥴링하는 단계는 상기 명령어 페치 요청에 따라 상기 명령페치모듈과 상기 메모리연산모듈을 연결하고, 상기 데이터 페치 요청에 따라 상기 산술로직모듈과 상기 메모리연산모듈을 연결할 수 있다.
또한, 상기 스케쥴링하는 단계는 복수 개의 상기 메모리연산모듈을 포함하여 상기 복수 개의 메모리연산모듈에 기 할당된 요청의 갯수를 판단하여 기 할당된 요청이 제일 적은 메모리연산모듈에 상기 명령어 페치 요청 또는 상기 데이터 페치 요청을 할당할 수 있다.
그리고, 상기 명령어 페치 요청을 출력하는 단계는 복수 개의 상기 명령페치모듈을 포함하여 한 사이클 동안 복수 개의 명령어 페치 요청을 상기 메모리 인터페이스 스케쥴러로 출력할 수 있다.
또한, 상기 스케쥴링하는 단계는 상기 복수 개의 명령어 페치 요청을 상기 복수 개의 메모리연산모듈에 할당할 수 있다.
또한, 상기 메모리 접근 연산을 수행하는 단계는 메모리로부터 복수 개의 명령어를 한 사이클 동안 동시에 로드할 수 있다.
그리고, 상기 스케쥴링하는 단계는 복수 개의 상기 산술로직모듈을 포함하여 적어도 하나의 데이터 페치 요청을 기 설정된 우선 순위에 따라 상기 복수 개의 메모리연산모듈에 할당할 수 있다.
이상 설명한 바와 같이 본 발명의 다양한 실시 예에 따르면 메모리를 효율적으로 사용할 수 있고, 프로세서를 효율적으로 사용함으로써 프로세서의 성능을 높일 수 있다.
도 1은 기존의 VLIW 인터페이스 장치의 블록도이다.
도 2는 본 발명의 제1 실시 예에 따른 VLIW 인터페이스 장치의 블록도이다.
도 3은 본 발명의 제2 실시 예에 따른 VLIW 인터페이스 장치의 블록도이다.
도 4는 본 발명의 제3 실시 예에 따른 VLIW 인터페이스 장치의 블록도이다.
도 5는 기존 VLIW 인터페이스 장치 및 본 발명의 VLIW 인터페이스 장치에서 명령어를 실행하는 과정을 설명하는 도면이다.
도 6은 본 발명의 일 실시 예에 다른 VLIW 인터페이스 장치 제어 방법의 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 시험 결과를 나타내는 도면이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명한다. 본 명세서에 기재된 실시 예는 다양하게 변형될 수 있다. 특정한 실시 예가 도면에서 묘사되고 상세한 설명에서 자세하게 설명될 수 있다. 그러나, 첨부된 도면에 개시된 특정한 실시 예는 본 발명의 다양한 실시 예를 쉽게 이해하도록 하기 위한 것일 뿐이다. 따라서, 첨부된 도면에 개시된 특정 실시 예에 의해 본 발명의 기술적 사상이 제한되는 것은 아니며, 본 발명은 본 발명의 사상 및 기술 범위에 포함되는 모든 균등물 또는 대체물을 포함하는 것으로 이해되어야 한다. 다만, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이러한 구성요소들은 상술한 용어에 의해 한정되지는 않는다. 상술한 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 명세서에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
한편, 본 명세서에서 사용되는 구성요소에 대한 "모듈" 또는 "부"는 적어도 하나의 기능 또는 동작을 수행한다. 그리고, "모듈" 또는 "부"는 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 의해 기능 또는 동작을 수행할 수 있다. 또한, 특정 하드웨어에서 수행되어야 하거나 적어도 하나의 프로세서에서 수행되는 "모듈" 또는 "부"를 제외한 복수의 "모듈들" 또는 복수의 "부들"은 적어도 하나의 모듈로 통합될 수도 있다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
도 2는 본 발명의 제1 실시 예에 따른 VLIW 인터페이스 장치의 블록도이다.
도 2를 참조하면, VLIW 인터페이스 장치(100)는 프로세서(110) 및 메모리(120)를 포함한다. 메모리(120)는 명령어 및 데이터를 저장한다. 그리고, 프로세서(110)는 명령어 및 데이터를 처리한다. 메모리(120)는 명령어와 데이터를 함께 저장할 수 있다. 메모리(170)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), 캐쉬 메모리, 레지스터, 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
프로세서(110)는 메모리(120)로부터 명령어 또는 데이터를 읽고 쓸 수 있다.
프로세서(110)는 명령페치모듈(111), 디코더(112), 산술로직모듈(113), 메모리 인터페이스 스케쥴러(114) 및 메모리연산모듈(115)를 포함한다. 명령페치모듈(111)은 메모리로부터 명령어를 로드하기 위해 명령어 페치 요청을 출력한다. 출력된 명령어 페치 요청은 메모리 인터페이스 스케쥴러(114)에 의해 메모리연산모듈(115)에 할당된다. 메모리연산모듈(115)은 메모리로부터 명령어를 읽을 수 있다. 읽혀진 명령어는 메모리 인터페이스 스케쥴러(114)를 거쳐 명령페치모듈(111)로 전달된다. 명령페치모듈(111)은 읽혀진 명령어를 디코더(112)로 전달한다.
디코더(112)는 전달된 명령어를 디코딩한다. 디코딩된 명령어가 산술 또는 논리 연산 명령어인 경우, 산술로직모듈(113)로 전달한다. 산술로직모듈(ALU)(113)은 전달된 산술 또는 논리 연산 명령어에 따라 산술 연산 또는 논리 연산을 수행한다. 산술로직모듈(113)은 연산 결과 데이터 또는 연산에 이용하기 위한 데이터를 로드하기 위해 데이터 페치 요청을 메모리 인터페이스 스케쥴러(114)로 전달한다.
메모리 인터페이스 스케쥴러(114)는 데이터 페치 요청을 스케쥴링한다. 메모리연산모듈(115)은 복수 개 존재할 수 있고, 메모리 인터페이스 스케쥴러(114)는 메모리연산모듈(115) 각각에 할당된 메모리 접근 연산(또는, 메모리 연산) 개수를 판단하고, 가장 적은 메모리 연산 개수가 할당된 메모리연산모듈(115)에 데이터 페치 요청을 할당한다. 메모리 연산이란 메모리에 억세스하는 로드 또는 스토어 등과 같은 연산을 의미한다. 즉, 메모리 연산은 산술로직모듈(113)에서 수행되는 산술 연산 또는 논리 연산과 구별된다.
또는, 메모리 인터페이스 스케쥴러(114)는 메모리연산모듈(115)에 할당된 메모리 연산의 개수가 동일한 경우 임의의 메모리연산모듈(115)에 데이터 페치 요청을 할당한다. 또는, 메모리 인터페이스 스케쥴러(114)는 기 설정된 순서에 의해 메모리연산모듈(115)에 데이터 페치 요청을 할당한다. 한편, 본 발명은 명령어와 데이터를 동일한 메모리에 저장할 수 있다. 따라서, 메모리 인터페이스 스케쥴러(114)는 명령페치모듈(111)로부터 전달된 명령어 페치 요청도 동일한 방식으로 스케쥴링할 수 있다.
메모리연산모듈(115)은 스케쥴링된 명령어 페치 요청 또는 데이터 페치 요청에 따라 메모리 연산을 수행한다. 즉, 메모리연산모듈(115)은 명령어 또는 데이터를 메모리로부터 로드하거나 데이터를 메모리에 저장할 수 있다.
도 3은 본 발명의 제2 실시 예에 따른 VLIW 인터페이스 장치의 블록도이다.
도 3을 참조하면, VLIW 인터페이스 장치(100a)는 복수의 명령페치모듈(111-0, 111-l), 디코더(112), 복수의 산술로직모듈(113-0, 113-n), 메모리 인터페이스 스케쥴러(114), 복수의 메모리연산모듈(115-0, 115-m), 레지스터(116) 및 메모리(120)를 포함할 수 있다. 메모리(120)는 명령어 또는 데이터를 저장할 수 있다.
복수의 명령페치모듈(111-0, 111-l)은 각각 명령어 페치 요청을 출력할 수 있다. 기존의 VLIW 인터페이스 장치는 하나의 명령페치모듈을 포함할 수 있다. 그러나, 본 발명의 VLIW 인터페이스 장치(100a)는 복수의 명령페치모듈(111-0, 111-l)을 포함하므로 동시에 복수 개의 명령어 페치 요청을 출력할 수 있다. 그리고, 본 발명의 VLIW 인터페이스 장치(100a)는 복수 개의 명령어를 로드할 수 있다. 예를 들어, 기존의 VLIW 인터페이스 장치는 하나의 명령어를 로드할 수 있으므로 조건 명령의 경우 예측을 통해 하나의 명령어를 로드할 수 있다. 만일, 예측이 틀린 경우, 기존의 VLIW 인터페이스 장치는 진행 중인 명령어의 처리를 중단하고 다시 새로운 명령어를 로드해야 하기 때문에 효율이 떨어진다. 그러나, 본 발명의 VLIW 인터페이스 장치(100a)는 복수의 명령어를 로드할 수 있으므로 조건 명령의 경우 복수 개의 명령어를 로드할 수 있다. 따라서, 본 발명의 VLIW 인터페이스 장치(100a)는 조건 명령이 분기될 수 있는 모든 명령어를 로드할 수 있으므로 지연없이 명령어를 처리할 수 있다.
디코더(112)는 명령페치모듈에 로드된 명령어를 디코딩할 수 있다. 디코딩된 명령어가 산술 또는 논리 연산 명령어이면, 산술로직모듈(113-0, 113-n)이 산술 연산 또는 논리 연산을 수행할 수 있다. VLIW 인터페이스 장치(100a)는 산술로직모듈(113-0, 113-n)을 복수 개 포함할 수 있다.
메모리 인터페이스 스케쥴러(114)는 명령어 페치 요청 또는 산술로직모듈(113-0, 113-n)으로부터 입력되는 데이터 페치 요청을 스케쥴링할 수 있다. 기존의 VLIW 인터페이스 장치는 명령어 메모리와 데이터 메모리를 별개로 관리할 수 있다.
기존의 VLIW 인터페이스 장치는 명령어를 로드하기 위한 메모리 연산 모듈을 포함할 수 있다. 즉, 기존의 VLIW 인터페이스 장치는 명령어 페치 요청에 따라 명령어 메모리로부터 명령어 메모리 연산 모듈로 명령어를 로드하고, 로드된 명령어를 명령 페치 모듈로 전달할 수 있다. 그리고, 기존의 VLIW 인터페이스 장치는 데이터 페치 요청에 따라 데이터 메모리로부터 메모리연산모듈로 데이터를 로드하여 산술로직모듈로 전달할 수 있다. 일반적으로 산술 또는 논리 연산보다 메모리 연산의 횟수가 적고 메모리연산모듈이 비싸기 때문에 산술로직모듈보다 메모리연산모듈의 개수가 적다. 예들 들어, 기존의 VLIW 인터페이스 장치는 일반적으로 1개의 명령어 메모리연산모듈, n개의 산술로직모듈, 그리고 m개의 데이터 메모리연산모듈을 포함할 수 있다. 그리고, n>m이다. 따라서, 기존의 VLIW 인터페이스 장치는 모두 m+1개의 메모리연산모듈을 포함하고, 1개의 명령어 메모리 인터페이스와 이와 별개의 m개의 데이터 메모리 인터페이스를 포함한다. 그리고, 기존의 VLIW 인터페이스 장치는 한 사이클 당 최대 1개의 명령어를 로드할 수 있다. 또한, 기존의 VLIW 인터페이스 장치는 한 사이클 당 최대 m개의 데이터를 로드하거나 저장할 수 있다.
본 발명의 VLIW 인터페이스 장치(100a)는 명령어와 데이터를 하나의 메모리로 관리하며, 명령어 메모리 인터페이스와 데이터 메모리 인터페이스를 공유할 수 있다. 그리고, 명령어 메모리 인터페이스와 데이터 메모리 인터페이스의 스케쥴링은 메모리 인터페이스 스케쥴러(114)가 담당할 수 있다. 일 실시 예로서, VLIW 인터페이스 장치(100a)가 기존의 VLIW 인터페이스 장치와 동일하게 m+1개의 메모리연산모듈을 포함한다고 가정한다. 본 발명의 VLIW 인터페이스 장치(100a)는 명령어 메모리 인터페이스와 데이터 메모리 인터페이스를 공유할 수 있으므로 최대 m+1개의 명령어를 로드할 수 있다. 또는, VLIW 인터페이스 장치(100a)는 최대 m+1개의 데이터를 로드하거나 저장할 수 있다. 따라서, VLIW 인터페이스 장치(100a)는 기존의 VLIW 인터페이스 장치와 동일한 메모리연산모듈을 가지고 효율적인 명령어 처리를 할 수 있다. 즉, VLIW 인터페이스 장치(100a)는 동일한 하드웨어에서 명령어 처리 성능을 향상시킬 수 있다.
VLIW 인터페이스 장치(100a)는 메모리연산모듈(115-0, 115-m)을 복수 개 포함할 수 있다. 복수 개의 메모리연산모듈(115-0, 115-m)은 명령어 페치 요청 또는 데이터 페치 요청에 따라 메모리 접근 연산(또는, 메모리 연산)을 수행할 수 있다. 예를 들어, 메모리 연산은 로드 또는 저장 연산을 포함할 수 있다. VLIW 인터페이스 장치(100a)는 레지스터(116)를 포함할 수 있다. 레지스터(116)는 산술로직모듈(113-0, 113-n)에서 연산을 수행할 때 빈번하게 필요한 데이터를 임시 저장할 수 있다. 산술로직모듈(113-0, 113-n)은 레지스터(116)로부터 필요한 데이터를 로드할 수 있다.
도 4는 본 발명의 제3 실시 예에 따른 VLIW 인터페이스 장치의 블록도이다.
도 4를 참조하면, VLIW 인터페이스 장치(100b)는 복수의 명령페치모듈(111-0, 111-l), 디코더(112), 복수의 산술로직모듈(113-0, 113-n), 메모리 인터페이스 스케쥴러(114), 복수의 메모리연산모듈(115-0, 115-m), 레지스터(116), 명령어 버퍼(117) 및 메모리(120)를 포함할 수 있다. 도 4에 도시된 VLIW 인터페이스 장치(100b)는 도 3에서 설명한 VLIW 인터페이스 장치(100a)와 유사한 구조로 이루어져 있다. 따라서, 공통되는 구성에 대한 설명은 생략한다.
도 4에 도시된 VLIW 인터페이스 장치(100b)는 명령어 버퍼(117)를 더 포함할 수 있다. 명령어 버퍼(117)는 명령페치모듈(111-0, 110-l)과 디코더(112) 사이에 위치할 수 있고, 미리 읽어들인 명령어를 저장할 수 있다.
도 5는 기존 VLIW 인터페이스 장치 및 본 발명의 VLIW 인터페이스 장치에서 명령어를 실행하는 과정을 설명하는 도면이다.
도 5(a)를 참조하면, 기존 VLIW 인터페이스 장치에서 명령을 실행하는 예가 도시되어 있다. 기존 VLIW 인터페이스 장치는 복수 개의 메모리 연산(ld, st), 복수 개의 산술 연산(mul, add, sub) 및 논리 연산(or, and)을 수행할 수 있다. 상술한 바와 같이, 기존의 VLIW 인터페이스 장치는 일반적으로 메모리연산모듈의 개수가 산술로직모듈의 개수보다 적다. 예를 들어, 기존의 VLIW 인터페이스 장치는 슬롯 0과 슬롯 1에만 메모리연산모듈을 포함할 수 있다. 따라서, 메모리연산은 슬롯 0과 1에서만 수행될 수 있다. 기존의 VLIW 인터페이스 장치의 일부 산술 연산 및 논리 연산은 메모리 연산의 수행 후에 처리되어야 한다. 따라서, 도 5(a)와 같이 기존의 VLIW 인터페이스 장치는 메모리 연산의 병목 현상 때문에 모든 연산을 수행하는데 7 사이클의 시간이 필요하다.
도 5(b)를 참조하면, 본 발명의 VLIW 인터페이스 장치에서 명령을 실행하는 예가 도시되어 있다. 본 발명의 VLIW 인터페이스 장치도 기존의 VLIW 인터페이스 장치와 동일하게 3개의 연산 슬롯을 포함할 수 있다. 그리고, 본 발명의 VLIW 인터페이스 장치도 도 5(a)와 같이 동일한 명령어 세트를 실행할 수 있다.
그러나, 상술한 바와 같이, 본 발명의 VLIW 인터페이스 장치는 명령어와 데이터 메모리 및 메모리연산모듈을 공유하며, 메모리 인터페이스 스케쥴러에 의해 스케쥴링될 수 있다. 따라서, 본 발명의 VLIW 인터페이스 장치는 3개의 슬롯에서 모두 메모리 연산을 수행할 수 있다. 그 결과, 본 발명의 VLIW 인터페이스 장치는 기존의 VLIW 인터페이스 장치가 수행한 명령어 세트와 동일한 명령어 세트를 수행하는데 5 사이클의 시간이 필요하다. 따라서, 본 발명의 VLIW 인터페이스 장치는 효율적으로 명령어를 처리할 수 있다.
추가적으로, 본 발명의 VLIW 인터페이스 장치는 기존의 VLIW 인터페이스 장치와 달리 제어 흐름이 분기되는 경우에도 복수 개의 명령어를 로드할 수 있다. 또한, 본 발명의 VLIW 인터페이스 장치는 기존의 VLIW 인터페이스 장치와 달리 제어 흐름의 예측이 틀린 경우에도 사이클의 오버헤드가 생기지 않는다.
지금까지 VLIW 인터페이스 장치의 다양한 실시 예를 설명하였다. 아래에서는 VLIW 인터페이스 장치의 제어 방법을 설명한다.
도 6은 본 발명의 일 실시 예에 다른 VLIW 인터페이스 장치 제어 방법의 흐름도이다.
도 6을 참조하면, VLIW 인터페이스 장치는 명령어 및 데이터를 저장하는 메모리로부터 명령어를 로드하기 위해 명령어 페치 요청을 출력한다(S610). VLIW 인터페이스 장치는 복수 개의 명령페치모듈을 포함하여 한 사이클 동안 복수 개의 명령어 페치 명령을 메모리 인터페이스 스케쥴러로 출력할 수 있다.
VLIW 인터페이스 장치는 명령어 페치 요청에 따라 로드된 명령어를 디코딩한다(S620). VLIW 인터페이스 장치는 디코딩된 명령어가 산술 연산 또는 논리 연산 명령어인 경우 산술 연산 또는 논리 연산을 수행한다(S630).
VLIW 인터페이스 장치는 명령어 페치 요청 또는 산술로직모듈로부터 입력되는 데이터 페치 요청을 스케쥴링한다(S640). VLIW 인터페이스 장치는 메모리연산모듈의 인터페이스를 공유할 수 있다. 즉, VLIW 인터페이스 장치는 명령어 메모리 인터페이스와 데이터 메모리 인터페이스를 공유할 수 있다. VLIW 인터페이스 장치는 명령어 페치 요청에 따라 명령페치모듈과 메모리연산모듈을 연결하고, 데이터 페치 요청에 따라 산술로직모듈과 메모리연산모듈을 연결할 수 있다. 또한, VLIW 인터페이스 장치는 복수 개의 메모리연산모듈을 포함하여 기 할당된 요청이 제일 적은 메모리연산모듈에 명령어 페치 요청 또는 데이터 페치 요청을 할당할 수 있다.
VLIW 인터페이스 장치는 스케쥴링된 명령어 페치 요청 또는 데이터 페치 요청에 따라 메모리 접근 연산을 수행한다(S650). VLIW 인터페이스 장치는 메모리로부터 복수 개의 명령어 또는 데이터를 한 사이클 동안 동시에 로드할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 시험 결과를 나타내는 도면이다.
도 7을 참조하면 일 실시 예에 따른 본 발명의 VLIW 인터페이스 장치와 기존의 VLIW 인터페이스 장치 간 특정 기능의 처리 성능을 비교한 도면이 도시되어 있다. 예를 들, 보이스 트리거 기능의 경우, 본 발명의 VLIW 인터페이스 장치의 성능이 약 4.2% 향상되었다. MP3 기능의 경우, 본 발명의 VLIW 인터페이스 장치의 성능이 약 6.1% 향상되었으며, 이미지 품질 향상 기능의 경우, 본 발명의 VLIW 인터페이스 장치의 성능이 약 12% 향상되었다. 메모리 연산 명령이 많은 기능을 수행할 때, 본 발명의 VLIW 인터페이스 장치는 기존의 VLIW 인터페이스 장치보다 성능이 향상될 수 있다.
상술한 다양한 실시 예에 따른 VLIW 인터페이스 장치의 제어 방법은 프로그램으로 구현되어 VLIW 인터페이스 장치에 제공될 수 있다.
일 예로, 명령어(Instruction) 및 데이터를 저장하는 메모리로부터 명령어를 로드하기 위해 명령어 페치 요청을 출력하는 단계, 명령어 페치 요청에 따라 로드된 명령어를 디코딩하는 단계, 디코딩된 명령어가 연산 명령어인 경우 연산 기능을 수행하는 단계, 명령어 페치 요청 또는 산술로직모듈로부터 입력되는 데이터 페치 요청을 스케쥴링하는 단계 및 스케쥴링된 명령어 페치 요청 또는 데이터 페치 요청에 따라 메모리 접근 연산을 수행하는 단계를 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100, 100a, 100b: VLIW 인터페이스 장치
110: 프로세서 111: 명령페치모듈
112: 디코더 113: 산술로직모듈
114: 메모리 인터페이스 스케쥴러 115: 메모리연산모듈
116: 레지스터 117: 명령어 버퍼
120: 메모리

Claims (16)

  1. 명령어(Instruction) 및 데이터를 저장하는 메모리;
    상기 명령어 및 데이터를 처리하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 메모리로부터 명령어을 로드하기 위해 명령어 페치 요청을 출력하는 명령페치모듈;
    상기 명령페치모듈에 로드된 명령어을 디코딩하는 디코더;
    상기 디코딩된 명령어가 연산 명령어인 경우 연산 기능을 수행하는 산술로직모듈(ALU);
    상기 명령어 페치 요청 또는 상기 산술로직모듈로부터 입력되는 데이터 페치 요청을 스케쥴링하는 메모리 인터페이스 스케쥴러; 및
    스케쥴링된 상기 명령어 페치 요청 또는 상기 데이터 페치 요청에 따라 메모리 접근 연산(operation)을 수행하는 메모리연산모듈;를 포함하는 VLIW(very long Instruction Word) 인터페이스 장치.
  2. 제1항에 있어서,
    상기 명령페치모듈은,
    상기 메모리연산모듈의 인터페이스를 공유하는 것을 특징으로 하는 VLIW 인터페이스 장치.
  3. 제2항에 있어서,
    상기 메모리 인터페이스 스케쥴러는,
    상기 명령어 페치 요청에 따라 상기 명령페치모듈과 상기 메모리연산모듈을 연결하고, 상기 데이터 페치 요청에 따라 상기 산술로직모듈과 상기 메모리연산모듈을 연결하는 것을 특징으로 하는 VLIW 인터페이스 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 메모리연산모듈을 복수 개 포함하고,
    상기 메모리 인터페이스 스케쥴러는,
    상기 복수 개의 메모리연산모듈에 기 할당된 요청의 갯수를 판단하여 기 할당된 요청이 제일 적은 메모리연산모듈에 상기 명령어 페치 요청 또는 상기 데이터 페치 요청을 할당하는 것을 특징으로 하는 VLIW 인터페이스 장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 명령페치모듈을 복수 개 포함하고,
    상기 명령페치모듈은,
    한 사이클 동안 복수 개의 명령어 페치 요청을 상기 메모리 인터페이스 스케쥴러로 출력하는 것을 특징으로 하는 VLIW 인터페이스 장치.
  6. 제5항에 있어서,
    상기 메모리 인터페이스 스케쥴러는,
    상기 복수 개의 명령어 페치 요청을 상기 복수 개의 메모리연산모듈에 할당하는 것을 특징으로 하는 VLIW 인터페이스 장치.
  7. 제6항에 있어서,
    상기 복수 개의 메모리연산모듈은,
    상기 메모리로부터 복수 개의 명령어를 한 사이클 동안 동시에 로드하는 것을 특징으로 하는 VLIW 인터페이스 장치.
  8. 제4항에 있어서,
    상기 프로세서는,
    상기 산술로직모듈을 복수 개 포함하고,
    상기 메모리 인터페이스 스케쥴러는,
    적어도 하나의 데이터 페치 요청을 기 설정된 우선 순위에 따라 상기 복수 개의 메모리연산모듈에 할당하는 것을 특징으로 하는 VLIW 인터페이스 장치.
  9. VLIW(very long Instruction Word) 인터페이스 장치의 제어 방법에 있어서,
    명령어(Instruction) 및 데이터를 저장하는 메모리로부터 명령페치모듈이 명령어를 로드하기 위해 명령어 페치 요청을 출력하는 단계;
    상기 명령어 페치 요청에 따라 로드된 명령어를 디코더가 디코딩하는 단계;
    상기 디코딩된 명령어가 연산 명령어인 경우 산술로직모듈(ALU)이 연산 기능을 수행하는 단계;
    상기 명령어 페치 요청 또는 상기 산술로직모듈로부터 입력되는 데이터 페치 요청을 메모리 인터페이스 스케쥴러가 스케쥴링하는 단계; 및
    스케쥴링된 상기 명령어 페치 요청 또는 상기 데이터 페치 요청에 따라 메모리연산모듈이 메모리 접근 연산(operation)을 수행하는 단계;를 포함하는 VLIW(very long Instruction Word) 인터페이스 장치의 제어 방법.
  10. 제9항에 있어서,
    상기 스케쥴링하는 단계는,
    상기 메모리연산모듈의 인터페이스를 공유하는 것을 특징으로 하는 VLIW 인터페이스 장치의 제어 방법.
  11. 제10항에 있어서,
    상기 스케쥴링하는 단계는,
    상기 명령어 페치 요청에 따라 상기 명령페치모듈과 상기 메모리연산모듈을 연결하고, 상기 데이터 페치 요청에 따라 상기 산술로직모듈과 상기 메모리연산모듈을 연결하는 것을 특징으로 하는 VLIW 인터페이스 장치의 제어 방법.
  12. 제9항에 있어서,
    상기 스케쥴링하는 단계는,
    복수 개의 상기 메모리연산모듈을 포함하여 상기 복수 개의 메모리연산모듈에 기 할당된 요청의 갯수를 판단하여 기 할당된 요청이 제일 적은 메모리연산모듈에 상기 명령어 페치 요청 또는 상기 데이터 페치 요청을 할당하는 것을 특징으로 하는 VLIW 인터페이스 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 명령어 페치 요청을 출력하는 단계는,
    복수 개의 상기 명령페치모듈을 포함하여 한 사이클 동안 복수 개의 명령어 페치 요청을 상기 메모리 인터페이스 스케쥴러로 출력하는 것을 특징으로 하는 VLIW 인터페이스 장치의 제어 방법.
  14. 제13항에 있어서,
    상기 스케쥴링하는 단계는,
    상기 복수 개의 명령어 페치 요청을 상기 복수 개의 메모리연산모듈에 할당하는 것을 특징으로 하는 VLIW 인터페이스 장치의 제어 방법.
  15. 제14항에 있어서,
    상기 메모리 접근 연산을 수행하는 단계는,
    메모리로부터 복수 개의 명령어를 한 사이클 동안 동시에 로드하는 것을 특징으로 하는 VLIW 인터페이스 장치의 제어 방법.
  16. 제12항에 있어서,
    상기 스케쥴링하는 단계는,
    복수 개의 상기 산술로직모듈을 포함하여 적어도 하나의 데이터 페치 요청을 기 설정된 우선 순위에 따라 상기 복수 개의 메모리연산모듈에 할당하는 것을 특징으로 하는 VLIW 인터페이스 장치의 제어 방법.
KR1020150165555A 2015-11-25 2015-11-25 Vliw 인터페이스 장치 및 제어 방법 KR102276718B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150165555A KR102276718B1 (ko) 2015-11-25 2015-11-25 Vliw 인터페이스 장치 및 제어 방법
US15/360,271 US10782974B2 (en) 2015-11-25 2016-11-23 VLIW interface device and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150165555A KR102276718B1 (ko) 2015-11-25 2015-11-25 Vliw 인터페이스 장치 및 제어 방법

Publications (2)

Publication Number Publication Date
KR20170060843A true KR20170060843A (ko) 2017-06-02
KR102276718B1 KR102276718B1 (ko) 2021-07-13

Family

ID=58721852

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150165555A KR102276718B1 (ko) 2015-11-25 2015-11-25 Vliw 인터페이스 장치 및 제어 방법

Country Status (2)

Country Link
US (1) US10782974B2 (ko)
KR (1) KR102276718B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9997232B2 (en) * 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
CN112540796B (zh) * 2019-09-23 2024-05-07 阿里巴巴集团控股有限公司 一种指令处理装置、处理器及其处理方法
US20230176863A1 (en) * 2021-12-03 2023-06-08 Taiwan Semiconductor Manufacturing Company, Ltd. Memory interface

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318825A (ja) * 2000-05-12 2001-11-16 Fujitsu Ltd メモリアクセス制御装置及びatm制御装置
US20050038550A1 (en) * 1999-08-30 2005-02-17 Ipflex Inc. Program product and data processing system
KR20100132032A (ko) * 2008-03-11 2010-12-16 콸콤 인코포레이티드 실행되는 명령의 결과를 선택적으로 커밋하는 시스템 및 방법
US20120331268A1 (en) * 2010-03-04 2012-12-27 Karlsruher Institut Fur Technologie Reconfigurable processor architecture
KR20150112774A (ko) * 2014-03-28 2015-10-07 인텔 코포레이션 동적 비순차적 프로세서 파이프라인을 구현하기 위한 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140910A (ja) 2001-11-05 2003-05-16 Hitachi Ltd Vliwプロセッサにおけるバイナリトランスレーション方法
ITMI20040600A1 (it) 2004-03-26 2004-06-26 Atmel Corp Sistema dsp su chip a doppio processore a virgola mobile nel dominio complesso
KR101110550B1 (ko) 2009-04-08 2012-02-08 한양대학교 산학협력단 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법
JP2014081846A (ja) 2012-10-17 2014-05-08 Renesas Electronics Corp Vliwプロセッサ
KR102021777B1 (ko) 2012-11-29 2019-09-17 삼성전자주식회사 병렬 처리를 위한 재구성형 프로세서 및 재구성형 프로세서의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050038550A1 (en) * 1999-08-30 2005-02-17 Ipflex Inc. Program product and data processing system
JP2001318825A (ja) * 2000-05-12 2001-11-16 Fujitsu Ltd メモリアクセス制御装置及びatm制御装置
KR20100132032A (ko) * 2008-03-11 2010-12-16 콸콤 인코포레이티드 실행되는 명령의 결과를 선택적으로 커밋하는 시스템 및 방법
US20120331268A1 (en) * 2010-03-04 2012-12-27 Karlsruher Institut Fur Technologie Reconfigurable processor architecture
KR20150112774A (ko) * 2014-03-28 2015-10-07 인텔 코포레이션 동적 비순차적 프로세서 파이프라인을 구현하기 위한 방법 및 장치

Also Published As

Publication number Publication date
KR102276718B1 (ko) 2021-07-13
US10782974B2 (en) 2020-09-22
US20170147351A1 (en) 2017-05-25

Similar Documents

Publication Publication Date Title
US9959142B2 (en) Dynamic task scheduling method for dispatching sub-tasks to computing devices of heterogeneous computing system and related computer readable medium
US9015451B2 (en) Processor including a cache and a scratch pad memory and memory control method thereof
TWI537831B (zh) 多核心處理器、用於執行處理程序切換之方法、用於保全一記憶體區塊之方法、用於致能使用一多核心裝置之異動處理之設備、以及用於執行記憶體異動處理之方法
EP2620873B1 (en) Resource allocation method and apparatus of GPU
US9304952B2 (en) Memory control device, storage device, and memory control method
JP5414656B2 (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
US9229765B2 (en) Guarantee real time processing of soft real-time operating system by instructing core to enter a waiting period prior to transferring a high priority task
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
KR102276718B1 (ko) Vliw 인터페이스 장치 및 제어 방법
JP2015225396A (ja) 車両制御装置
KR102205899B1 (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
US10409610B2 (en) Method and apparatus for inter-lane thread migration
KR20230070247A (ko) 다수의 페치 및 디코드 파이프라인을 갖는 프로세서
KR20220073841A (ko) 가중된 메모리 액세스 동작 유형을 사용하는 메모리 디바이스에 대한 서비스 품질
JP4017005B2 (ja) 演算装置
US9632834B2 (en) Assigning priorities to computational work streams by mapping desired execution priorities to device priorities
KR20220073840A (ko) 메모리 디바이스에서의 다수의 기능을 위한 서비스 품질
US20150293766A1 (en) Processor and method
JP6364827B2 (ja) 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム
CN112749006B (zh) 数据存储装置及其操作方法
US10481867B2 (en) Data input/output unit, electronic apparatus, and control methods thereof
US10606602B2 (en) Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports
US10977046B2 (en) Indirection-based process management
US20220188154A1 (en) Method for monitoring a task and an apparatus implementing the same method
KR20230070042A (ko) 다수의 op 캐시 파이프라인을 갖는 프로세서

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