문맥 (context)
디지털 신호 처리는 원격 통신, 멀티미디어 및 소비 가전 산업계에서 중요한 역할을 하고 있다. 디지털 신호 처리에 포함된 연산을 실행하기 위해서, 디지털 신호 프로세서로서 지칭되는 특수한 타입의 프로세서를 설계할 수 있다. 디지털 신호 프로세서는 프로그래밍 가능형 프로세서이거나 애플리케이션 특정 인스트럭션-세트 프로세서일 수 있다. 프로그래밍 가능형 프로세서는 범용 프로세서(general-purpose processors)이고, 음향, 이미지 및 비디오를 포함하는 여러 타입의 정보를 처리하는 데 있어서 이용될 수 있다. 애플리케이션 특정 인스트럭션-세트 프로세서의 경우에, 프로세서 아키텍처 및 인스트럭션 세트는 주문형(customized)이 되고, 이것은 시스템의 비용 및 전력 손실을 크게 감소시킨다. 후자는 휴대형 및 네트워크 전력 공급형 장치에 있어서 매우 중요하다.
디지털 신호 프로세서 아키텍처는 고정된 데이터 경로로 이루어지고, 이것은 제어 워드의 세트에 의해 제어된다. 각각의 제어 워드는 데이터 경로의 일부분을 제어하고, 이러한 부분은 ALU(arithmetic logic units) 또는 다른 기능 유닛을 위한 레지스터 어드레스 및 연산 코드(operation codes)를 포함할 수 있다. 각각의 인스트럭션 세트는, 일반적으로 인스트럭션의 이진 포맷(binary format)을 대응하는 제어 워드로 변환하는 인스트럭션 디코더를 이용하거나, 제어 워드를 직접적으로 포함하는 마이크로 저장 장치(micro store) 즉, 메모리를 이용하여 새로운 세트의 제어 워드를 생성한다. 전형적으로, 제어 워드는 연산 코드, 2개의 오퍼랜드 레지스터 인덱스(operand register indices) 및 결과 레지스터 인덱스를 포함하는 RISC 유사 연산을 나타낸다. 오퍼랜드 레지스터 인덱스 및 결과 레지스터 인덱스는 레지스터 파일 내의 레지스터를 지칭한다.
VLIW(Very Large Instruction Word) 프로세서는 때때로 디지털 신호 처리를 위해 이용된다. VLIW 프로세서의 경우에, 다수의 인스트럭션은 하나의 긴 인스트럭션으로 패키징(packaged)되어, 소위 VLIW 인스트럭션이 된다. VLIW 프로세서는 다수의, 독립적인 실행 유닛을 이용하여 이러한 다수의 인스트럭션을 병렬로 실행한다. 프로세서는 프로그램 내에서 인스트럭션 레벨 병렬화(parallelism)의 이용을 가능하게 하고, 그에 따라 한번에 하나 이상의 인스트럭션을 실행한다. 이러한 형태의 동시적 처리에 기인하여, 프로세서의 성능이 증가된다. 소프트웨어 프로그램이 VLIW 프로세서 상에서 실행될 수 있게 하기 위해서, 이러한 소프트웨어 프로그램은 VLIW 인스트럭션의 세트로 변환되어야 한다. 컴파일러(compiler)는 병렬화를 최적화함으로써 프로그램을 실행하는 데 필요한 시간을 최소화하려고 시도한다. 컴파일러는 단일 VLIW 인스트럭션에 할당된 인스트럭션이 병렬로 실행될 수 있다는 한계 및 데이터 의존성 한계 하에서 인스트럭션들을 VLIW 인스트럭션으로 결합한다. VLIW 인스트럭션 내에서 병렬 인스트럭션의 인코딩은 코드 크기의 상당한 증가를 초래한다. 큰 코드 크기는 요구되는 메모리 크기 및 요구되는 메모리 대역폭에 모두 관련하여 프로그램 메모리 비용의 증가를 초래한다. 현대의 VLIW 프로세서에서, 코드 크기를 감소시키기 위해 여러 방법을 이용한다. 중요한 일례로는 데이터 고정형 VLIW 프로세서 내에서 NOP(no operation) 연산의 간결한 표현이 있는데, 다시 말해서, NOP 연산은 VLIW 인스트럭션의 전방(front)에 부착된 특수 헤더(special header) 내의 단일 비트에 의해 인코딩되어, 압축된 VLIW 인스트럭션을 생성한다.
프로세서의 데이터 파이프라인 내의 연산을 제어하기 위해서, 컴퓨터 아키텍처 내에서는 통상적으로 2개의 서로 다른 메커니즘이 이용되는데, 이러한 2개의 서로 다른 메커니즘은 G. Goossens, J. van Praet, D. Lanneer, W. Geurts, A. Kifli, C. Liem 및 P. Paulin에 의한 "Embedded software in real-time signal processing systems: design technologies"라는 제목의 문헌(Proceedings of the IEEE, vol. 85, no. 3, March 1997)에 개시된 바와 같이 데이터-고정형(data-stationary) 및 시간 고정형(time-stationary) 인코딩이다. 데이터-고정형 인코딩의 경우에, 프로세서의 인스트럭션 세트의 일부분이 되는 모든 인스트럭션은, 그 인스트럭션이 데이터 파이프라인을 통과할 때 특정 데이터 항목에 대해 실행되어야 하는 연산의 완전한 시퀀스를 제어한다. 인스트럭션이 프로그램 메모리로부터 인출(fetched)되고 디코딩되면, 프로세서 제어기 하드웨어는 정확한 머신 사이클(correct machine cycle) 내에서 구성 연산이 실행될 수 있도록 보장할 것이다. 시간 고정형 코딩의 경우에, 프로세서의 인스트럭션 세트의 일부분이 되는 모든 인스트럭션은, 단일 머신 사이클 내에서 실행되어야 하는 연산의 완전한 세트를 제어한다. 이러한 연산은 데이터 파이프라인을 통과하는 여러 서로 다른 데이터 항목에 적용될 수 있다. 이러한 경우에, 데이터 파이프라인을 셋업하고 관리하는 것은 프로그래머 또는 컴파일러(compiler)의 책임 하에서 이루어진다. 결과적인 파이프라인 스케쥴은 머신 코드 프로그램 내에서 완전히 볼 수 있게 된다. 시간 고정형 인코딩은 때때로 코드 크기가 더 커지는 것을 감수하고 인스트럭션 내에 존재하는 제어 정보를 지연시키기 위해 필요한 하드웨어의 오버헤드를 절약하기 때문에, 애플리케이션 특정 프로세서 내에서 이용된다.
조건부 연산, 즉 실시간으로 계산된 조건에 기초한 결과를 복귀시키는 연산을 지원할 수 없다는 것이 시간 고정형 프로세서의 단점이다. 시간 고정형 인코딩은 레지스터 파일에 대한 결과의 되기록(write back)을 포함하는 모든 제어 정보가, 컴파일 시간에 정적으로 결정되고, 프로그램으로 인코딩되는 것을 요구한다.
지시문 (instruction)
문맥에 제시된 원인과 근거를 종합하여 그 이유를 설명하라.
질문 (question)
애플리케이션 특정 프로세서에서 시간 고정형 인코딩을 이용할 때 얻을 수 있는 기술적 이점은 무엇인가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation시간 고정형 인코딩(time-stationary encoding)이 애플리케이션 특정 프로세서에서 제공하는 기술적 효과(이점)를 찾는 작업이다.
-
2정보 추출
information_extraction본문에서 '시간 고정형 인코딩'과 '애플리케이션 특정 프로세서'가 언급된 문장을 탐색한다.
- 시간 고정형 인코딩은 때때로 코드 크기가 더 커지는 것을 감수하고 인스트럭션 내에 존재하는 제어 정보를 지연시키기 위해 필요한 하드웨어의 오버헤드를 절약하기 때문에, 애플리케이션 특정 프로세서 내에서 이용된다.
-
3근거 선택
evidence_selection코드 크기 증가라는 단점에도 불구하고 얻을 수 있는 긍정적인 효과를 선별한다.
- 인스트럭션 내에 존재하는 제어 정보를 지연시키기 위해 필요한 하드웨어의 오버헤드를 절약하기 때문에
-
4논리 통합
logical_integration시간 고정형 인코딩의 사용 목적이 하드웨어 오버헤드 절감에 있음을 확인한다.
-
5결론 도출
conclusion_formulation코드 크기가 커지는 비용이 발생하지만, 제어 정보 지연에 필요한 하드웨어 오버헤드를 줄일 수 있다는 점을 결론으로 도출한다.
- 인스트럭션 내에 존재하는 제어 정보를 지연시키기 위해 필요한 하드웨어의 오버헤드를 절약하기 때문에
-
6답변 생성
answer_generation질문에 대해 명확하고 간결하게 답변을 작성한다.
- 하드웨어의 오버헤드를 절약할 수 있다.
최종 답변 (final_answer)
코드 크기가 더 커지는 것을 감수하더라도, 인스트럭션 내에 존재하는 제어 정보를 지연시키기 위해 필요한 하드웨어의 오버헤드를 절약할 수 있다.
핵심 해석 (core_interpretation)
시간 고정형 인코딩 방식이 코드 크기 증가라는 트레이드오프(trade-off)를 가지면서도 하드웨어 자원 효율성 측면에서 갖는 이점