KR20080010022A - n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을갖는 주변장치와의 연결 방법 - Google Patents
n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을갖는 주변장치와의 연결 방법 Download PDFInfo
- Publication number
- KR20080010022A KR20080010022A KR1020060069949A KR20060069949A KR20080010022A KR 20080010022 A KR20080010022 A KR 20080010022A KR 1020060069949 A KR1020060069949 A KR 1020060069949A KR 20060069949 A KR20060069949 A KR 20060069949A KR 20080010022 A KR20080010022 A KR 20080010022A
- Authority
- KR
- South Korea
- Prior art keywords
- cpu
- bit
- peripheral device
- bits
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0321—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
- G06F1/0328—Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을 갖는 주변장치와의 연결 방법이 개시된다. 본 발명의 바람직한 일 실시예에 따르면, k(2이상인 임의의 자연수)개의 n(임의의 자연수) 비트 누산기와 주변장치로 또는 주변장치로부터 송/수신되는 데이터가 저장되는 누산기의 주소를 지정하는 n 비트 단위의 k개의 주소 지정 영역을 포함하는 주소 지정 레지스터를 포함하는 것을 특징으로 하는 CPU가 제공된다. 본 발명에 따르면, n 비트 CPU가 n 비트보다 큰 대역폭을 가진 주변장치가 나타낼 수 있는 모든 주소로 접근할 수 있는 장점이 있다.
CPU, 주소, DPTR, DPL, DPH, 비트, 레지스터, 누산기, 주변장치
Description
도 1은 종래의 CPU의 구조를 도시한 블록도.
도 2는 종래의 CPU와 주변장치의 연결 구성을 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 CPU의 구조를 도시한 블록도.
도 4는 본 발명의 바람직한 일 실시예에 따른 CPU와 주변장치의 연결 구성을 도시한 도면.
본 발명은 n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을 갖는 주변장치와의 연결 방법에 관한 것으로서, 보다 상세하게는 n 비트보다 큰 대역폭을 가지는 주변장치와 연결할 수 있는 n 비트 CPU 및 이를 이용한 n 비트보다 큰 대역폭을 갖는 주변장치와의 연결 방법에 관한 것이다.
중앙 처리 장치(Computer Central Processing Unit, 이하 'CPU'라 함)는 디지털 처리 장치의 가장 중요한 부분으로 명령을 해독하고 산술, 논리, 연산이나 데이터 처리를 실행하는 장치이다.
현재 계측기, 제어기, 프린터 등의 산업 기기 뿐만 아니라 휴대 단말, 디지털 카메라 등의 가전 디지털 처리 장치 등 거의 모든 전기전자 관련 제품은 컴퓨팅 기능을 구비하고 있으므로 제품 내에 CPU를 포함하고 있다.
이러한 CPU는 처리 단위에 따라 4비트, 8비트, 16비트, 32비트, 64비트 등으로 구분되며, 처리 방식에 따라 CISC(Complex Instruction Set Computer), RISC(Reduced Instruction Set Computer), SIMD(Single Instruction Multiple Data) 등으로 구분된다.
현재 컴퓨팅 기능을 구비한 전기전자 관련 제품의 경우 8비트 CPU가 가장 널리 사용되고 있다. 이는 8비트 CPU는 가격대비 성능이 우수하고 특히 비교적 구조가 단순하여 쉽게 응용이 가능하다는 이점이 있으며, 특히 최근에 전자제품에서 임베디드(Embedded) 시스템이 일반화되면서 더욱 널리 사용되고 있다.
이러한 산업계 전반에서 널리 사용되는 8비트 CPU를 중심으로 종래의 CPU와 주변장치와의 연결의 문제점을 살펴본다.
CPU와 연결되는 다양한 주변 장치들은 8비트보다 큰 대역폭(bandwidth)을 가지는 다양한 기기들이 개발되어 사용되고 있다. 따라서, 중심이 되는 전자 기기들의 경우 8비트 CPU임에 비해 주변기기들은 8비트 보다 큰 대역폭을 가지는 경우가 빈번하게 발생되고 있다.
먼저 도 1과 도 2를 참조하여 종래의 8비트 CPU의 구조와 8비트 CPU에서 8비트보다 큰 대역폭을 가지는 주변장치를 연결하는 경우의 문제점에 대해 상세하게 살펴본다.
도 1에 도시된 바와 같이, 종래의 8비트 CPU(100)는 CU(Control Unit, 110), ALU(Arithmetic and Logic Unit, 120), SFR(Special Function Register, 130), ICB(Internal CPU Bus, 160)를 포함하며 SFR(130)은 DPTR(Data PoinTer Register, 140), ACC(Accumulater, 150)를 포함한다.
CU(110)는 일반적으로 제어 장치로도 불리우며, 명령어의 해석과 실행을 담당한다.
ALU(120)는 산술논리연산장치(이하 ALU라 함)로도 불리우며 비교, 판단, 연산을 담당한다.
SFR(130)는 레지스터의 한 종류이며, 레지스터는 CPU가 반복적 또는 주기적으로 처리하는 동안 일시적으로 정보를 저장한다. SFR(130)은 특히 가장 널리 사용되는 Intel사의 8비트 CPU인 8051에서 Input/Output의 기능 전반을 제어한다.
SFR(130)은 DPTR(140)과 ACC(150)를 포함한다. DPTR(140)은 일반적으로 CPU와 같은 대역폭을 가지거나(예를 들면, 8비트 CPU의 경우 8비트), 가장 널리 사용되는 Intel사의 8비트 CPU인 8051의 경우 16비트 길이를 갖고 있다. 가장 널리 사용되는 Intel사의 8비트 CPU에서는 8비트 단위로 상위의 DPH(142), 하위의 DPL(144)로 나누어질 수 있다.
DPTR(140) 레지스터는 주소 지정 레지스터로서 외부 데이터 메모리와 데이터 전송시 어드레스 포인터로서 사용되며, 프로그램 메모리(ROM : Read Only Memory)에서 정수 연산 혹은 ACC(150)와 조합해서 테이블 분기로 사용된다.
ACC(150)는 누산기로도 불리우며 산술과 논리연산의 결과를 일시적으로 기억하는 레지스터이다.
ICB(160)는 Internal CPU Bus(이하 ICB라 함)의 약어로 CPU 내부의 전기적 신호를 전달하는 통로이다.
이러한 구성을 가지는 종래의 8비트 CPU(100)를 8비트보다 큰 대역폭을 갖는 주변장치와 연결하는 경우 제어 신호 또는 데이터 등의 흐름에 대해 도 2를 참조하여 살펴본다.
도 2에 도시된 바와 같이, 8비트 CPU(100)는 프로그램 메모리(200)와 결합되며, 데이터 버스(220)와 어드레스 버스(230)에 연결되어 주변장치와 연결된다.
프로그램 메모리(200)는 명령어가 저장되는 메모리이며, 도 2에서는 CPU(100)의 외부에 구성되는 것으로 도시하였으나 CPU(100)의 내부에 포함되어 구성될 수도 있다.
데이터 버스(220)는 CPU(100)에서 메모리나 입출력 기기 등의 주변장치에 데이터를 송출하거나 반대로 주변장치에서 CPU(100)가 데이터를 읽어 들일 때 필요한 전송 선로이다. 데이터 버스(220)는 CPU(100)와 메모리 또는 입출력기 간에 어떤 곳으로도 데이터를 전송할 수 있으므로 쌍방향 버스라고도 한다. 데이터 버스(220)는 CPU(100) 내의 ICB(160)와 연결되어 데이터를 주고 받는다.
어드레스 버스(230)는 CPU(100)가 메모리나 입출력 기기의 주소를 지정할 때 사용되는 전송 선로이다. 어드레스 버스(230)는 CPU(100)에서만 주소를 지정할 수 있기 때문에 단방향 버스라고도 한다. 어드레스 버스(230)는 CPU(100)내의 SFR(130)에 포함된 DPTR(140)과 연결되어 DPTR(140)에서 지정한 주소를 전송하는 통로 역할을 수행한다.
8비트 CPU(100)를 8비트보다 큰 대역폭을 갖는 주변 장치와 연결하는 경우를 가장 널리 사용되는 Intel사의 8비트 CPU인 8051을 기준으로 살펴본다.
먼저 DPTR(140)은 8비트 단위의 주소 지정 영역인 상위의 DPH(142)과 하위의 DPL(144)로 나누어질 수 있다. 따라서 이러한 레지스터를 접근하여 이용할 수 있는 최대 주소 영역은 64(=82)K가 된다.
그러나 32비트의 대역폭을 가진 주변장치의 경우 약4 (=84) G 가 최대 주소 영역이 된다.
따라서 8비트 CPU가 32비트의 대역폭을 가진 주변장치로 나타낼 수 있는 모든 주소가 지정할 수 있는 전 영역에 접근할 수 없는 문제점이 있다.
또한, 이러한 문제점으로 인하여 CPU를 사용함에 있어서 실제 필요로 하는 CPU의 대역폭이 8비트임에도 불구하고 32비트 CPU를 사용하게 되어 CPU 사이즈의 증가와 비용이 증가하는 문제점이 있다.
또한, CPU(100)와 주변 장치의 대역폭 즉 통신 회선과 채널을 통해 정보를 가져오는데 소요되는 용량이 다르므로, 데이터의 앞에서 어떤 틀을 잡아 주는 데이터 또는 다른 프로그램이 성공적으로 실행되도록 설정하는 프로그램 또는 장치인 래퍼(Wrapper)(210)를 사용하여 CPU(100)와 주변장치를 연결하여야 하는 문제점이 있다.
즉, 예를 들면 8비트 CPU(100)가 32비트 레지스터를 가진 주변 장치로 데이터를 송/수신하여 데이터를 읽기/쓰기 위해서는, 래퍼(210)가 먼저 32비트 데이터를 송/수신한 후 32비트 데이터를 8비트씩 나누어 4번에 걸쳐 주변 장치로 전송하거나 전송받아야 하는 문제점이 있다.
상기한 바와 같은 종래의 문제점을 해결하기 위해, 본 발명은 n 비트 CPU로 n 비트보다 큰 대역폭의 주변장치와 연결하는 경우에도 n 비트보다 큰 대역폭을 가진 주변장치가 나타낼 수 있는 모든 주소로 접근할 수 있는 n 비트 CPU 및 이를 이용한 n 비트보다 큰 대역폭을 갖는 주변장치와의 연결 방법을 제안하는 것이다.
또한, n 비트 CPU로 n 비트보다 큰 대역폭을 갖는 주변장치로 래퍼를 사용하지 않고도 한번에 데이터를 송/수신할 수 있는 n 비트 CPU 및 이를 이용한 n 비트보다 큰 대역폭을 갖는 주변장치와의 연결 방법을 제안하는 것이다.
본 발명의 또 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일 측면에 따르면 CPU(중앙 처리 장치)가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, n 비트를 초과하는 대역폭을 갖는 주변장치와 연결되는 n 비트 처리 단위의 CPU에 있어서, k(2이상인 임의의 자연수)개의 n(임의의 자연수) 비트 누산기; 및 상기 주변장치로 또는 주변장치로부터 송/수신되는 데이터가 저장되는 누산기의 주소를 지정하는 n 비트 단위의 k개의 주소 지정 영역을 포함하는 주소 지정 레지스터를 포함하는 것을 특징으로 하는 CPU가 제공된다.
상기 CPU는 상기 누산기에 각각 연결되는 입/출력 포트를 더 포함할 수 있으며, 상기 입/출력 포트를 통해 입/출력되는 데이터가 n 비트 단위로 각 누산기에 저장되도록 m(임의의 자연수)개의 누산기를 활성화하는 활성 제어부를 포함할 수 있다.
또한, 상기 활성화되는 누산기의 수(m)는 상기 데이터의 크기/n 비트 이상인 최소의 자연수일 수 있다.
상기 누산기의 개수(k)는 수학식 k = 상기 데이터의 크기/ n 비트를 만족할 수 있다.
상기 입/출력 포트는 상기 CPU가 연결되는 상기 주변장치의 데이터 버스와 연결될 수 있다.
상기 주소 지정 레지스터는 상기 주변장치의 어드레스 버스와 연결될 수 있다.
상기 CPU는 상기 명령어를 저장하는 프로그램 메모리를 더 포함할 수 있다.
본 발명의 다른 측면에 의하면, n 비트 CPU와 n비트 보다 큰 대역폭을 가지는 주변장치와의 연결 방법이 제공된다.
본 발명의 바람직한 일 실시예에 따르면, n(임의의 자연수) 비트 처리 단위의 CPU(Computer Central Processing Unit)와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법에 있어서, 상기 주변장치의 대역폭에 상응하여 n 비트 처리 단위의 CPU의 제어 출력을 조정하는 단계(a); 및 송/수신될 데이터가 기록된 n 비트 단위의 k(2이상인 임의의 자연수)개의 누산기 주소를 상기 주변 장치로 전송하는 단계(b)를 포함하되, 상기 전송되는 누산기 주소는 n 비트 단위의 k개의 주소 지정 영역을 포함하는 주소 지정 레지스터에서 상기 주변장치로 동시에 전송되는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법이 제공된다.
본 발명의 다른 측면에 의하면, n 비트 CPU와 n비트 보다 큰 대역폭을 가지는 주변장치와의 연결 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, n(임의의 자연수) 비트 처리 단위의 CPU(Computer Central Processing Unit)와 n 비트를 초과하는 대역폭을 갖는 주변 장치 주변장치를 연결할 수 있도록 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서, 상기 주변장치의 대역폭에 상응하여 n 비트 처리 단위의 CPU의 제어 출력을 조정하는 단계(a); 및 송/수신될 데이터가 기록된 n 비트 단위의 k(2이상인 임의의 자연수)개의 누산기 주소를 상기 주변 장치로 전송하는 단계(b)를 포함하되, 상기 전송되는 누산기 주소는 n 비트 단위의 k개의 주소 지정 영역을 포함하는 주소 지정 레지스터에서 상기 주변장치로 동시에 전송되는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
상기 단계(a)의 상기 CPU의 제어 출력 조정은 상기 CPU의 클럭(clock) 수의 조절에 의해 수행될 수 있다.
상기 누산기의 개수(k)는 수학식 k = 상기 데이터의 크기/ n 비트를 만족할 수 있다.
상기 주변장치로 또는 주변장치로부터 송/수신될 최대 n 비트로 분할된 데이터들이 상기 각 누산기에 동시에 저장되는 단계(c)를 더 포함할 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하에서는 현재 산업계에서 널리 사용되는 8비트 CPU를 중심으로 본 발명을 설명하기로 하나, 본 발명에 의한 CPU와 이를 이용한 n 비트보다 큰 대역폭을 갖는 주변장치와의 연결 방법은 8비트 이외의 다른 CPU의 경우에도 적용될 수 있음은 자 명하다.
먼저 도 3을 참조하여 본 발명의 바람직한 일 실시예에 따른 CPU의 구조에 대해 살펴본다.
도 3은 본 발명의 바람직한 일 실시예에 따른 CPU의 구조를 도시한 블록도이다.
도 3에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 8비트 CPU(300)에는 CU(Control Unit, 310), ALU(Arithmetic and Logic Unit, 320), SFR(Special Function Register, 330), ICB(Internal CPU Bus, 370)를 포함할 수 있다.
CU(310)는 일반적으로 제어 장치로도 불리우며, 명령어의 해석과 실행을 수행하여 제어 신호를 생성한다.
ALU(320)는 산술논리연산장치로도 불리우며, 명령어 내에 있는 연산자들에 의해 비교, 판단, 연산을 수행한다.
SFR(330)는 레지스터의 한 종류이며, 레지스터는 CPU가 반복적 또는 주기적으로 처리하는 동안 일시적으로 정보를 저장한다. SFR(330)은 특히 가장 널리 사용되는 Intel사의 8비트 CPU인 8051에서 Input/Output의 기능 전반을 제어한다.
본 발명에 의한 SFR(330)은 DPTR(Data PoinTer Register, 340), ACC(Accumulater, 350), ACC1(352), ACC2(354), ACC3(356), EBR(358), ENHNC(360)를 포함한다.
본 발명의 바람직한 일 실시예에 따른 CPU에 포함되는 DPTR(340)은 32비트 길이를 갖고 있다. 종래와 비교하여 본 발명의 바람직한 일 실시예에 따른 CPU는 8비트 단위의 상위 DPH(342)와 하위 DPL(344)의 주소 지정 영역 외에도 8비트 단위의 DPH1(346)과 DPL1(348)의 주소 지정 영역을 더 포함한다.
DPTR(340) 레지스터는 외부 데이터 메모리와 데이터 송수신시 어드레스 포인터로서 사용되며, 프로그램 메모리(ROM: Read Only Memory)에서 정수 연산 혹은 ACC(350)와 조합해서 테이블 분기로 사용된다. DPTR(340)은 주변장치로 또는 주변장치로부터 전송될 데이터가 저장될 주소와 전송된 데이터가 저장될 ACC(350)의 주소를 데이터를 송수신하는 주변장치로 전송하는 주소 지정 레지스터이다.
도 3에서는 8비트 CPU와 32비트 대역폭을 가진 주변장치를 연결하는 경우를 예시한 것으로 DPTR(340)에 DPH1(346)과 DPL1(348)을 2개 추가하였으나 주변장치의 대역폭에 따라 DPTR(340)에 추가되는 주소 지정 영역의 수를 달리 할 수 있음은 자명하다.
DPTR(340)의 추가된 주소 지정 영역인 DPH1(346)과 DPL1(348)의 구성과 기능은 도 4에서 보다 상세하게 살펴보기로 한다.
ACC(350)는 누산기로도 불리우며 산술과 논리연산의 결과를 일시적으로 기억하는 레지스터로 주변 장치로 전송할 데이터가 저장된다.
본 발명에 의한 8비트 CPU는 종래의 8비트 CPU와 달리 하나의 8비트의 정보를 저장하는 하나의 ACC를 포함하는 것이 아니라 다수의 ACC(예를 들어, ACC(350), ACC1(352), ACC2(354) 및 ACC3(356)와 같이 4개의 ACC)를 포함할 수 있다.
도 3에서는 8비트 CPU를 기준으로 32비트 주변 장치로부터 32비트 데이터를 전송하는 경우를 기준으로 ACC를 종래와 달리 3개의 ACC를 더 포함하여 모두 4개의 ACC를 포함하는 것으로 도시하였다. 그러나, 전송할 주변 장치의 데이터 비트 수에 따라 종래와 달리 추가되는 ACC의 개수는 달라질 수 있다.
즉, 예를 들어 8비트 CPU를 16비트의 주변장치에만 연결하는 경우라면 이 경우 ACC는 하나만을 더 추가시켜 모두 2개의 ACC를 포함하게 하거나 24비트 주변장치만 사용하는 경우 3개의 ACC 등이 가능하다.
또한 본 설명과 같이 32비트를 기준으로 모두 ACC를 4개를 포함하고 16비트 또는 24비트 등과 연결하는 경우 ACC를 선택적으로 사용하는 것도 가능함은 자명하다.
증가된 ACC는 각각 별도의 고유의 주소를 가지게 되며 별도의 고유 주소를 이용하여 DPTR(340)의 각각의 주소 지정 영역(DPH(342), DPL(344) DPH1(346), DPL1(348))에서 주변장치의 어드레스 버스를 통해 주변장치에 ACC의 주소를 전달한다. 또한 증가된 ACC들은 별도의 입/출력포트를 가지며 데이터 버스와 직접 연결된다.
본 발명에서는 증가된 ACC에 정보를 저장하여 전송할 수 있는 기능을 수행할 수 있는 레지스터를 더 포함한다. 따라서 본 발명에 의한 8비트 CPU는 종래와 달리 SFR(330)에 EBR(Extend BandWidth Register, 358)이라는 확장 레지스터를 더 포함한다.
EBR(358)은 8비트를 초과하는 예를 들면, 16비트, 24비트, 32비트의 데이터 쓰기를 위한 전송인지를 구별하기 위한 기능을 수행하는 대역폭 확장 레지스터이 다.
EBR(358)은 EBR(358) 내부 영역에 저장된 정보에 따라 선택적으로 복수개의 ACC에 연산된 결과를 저장하고 복수개의 ACC는 각각의 주소를 가지고 있으므로 주소 정보를 이용하여 주변장치로 직접 데이터를 보낼 수 있게 된다. EBR(358)은 예를 들어 32비트의 데이터 쓰기인 것으로 판단하면, 주변장치로 전송될 32비트 데이터가 각 ACC에 8비트씩 저장될 수 있도록 상응하는 수량의 ACC를 활성화시킬 수 있는 기능을 수행한다.
또한 본 발명에서는 증가된 ACC에 정보를 수신하여 저장할 수 있는 기능을 수행할 수 있는 레지스터를 더 포함한다. 따라서 본 발명에 의한 8비트 CPU는 종래와 달리 SFR(330)에 ENHNC(ENHaNCe function register into SFR, 360)이라는 확장 레지스터를 더 포함한다.
ENHNC(360)는 8비트를 초과하는 예를 들면, 16비트, 24비트, 32비트의 데이터 읽기인지 여부를 구별하기 위한 기능을 수행하는 레지스터이다. ENHNC(358)는 예를 들어 32비트의 데이터 읽기인 것으로 판단하면, 주변장치로부터 DPTR(340)가 읽어온 32비트 데이터가 각 ACC에 8비트씩 저장될 수 있도록 상응하는 수량의 ACC를 활성화시킬 수 있는 활성 제어부로서 EBR(358)이 데이터 쓰기에 필요한 기능을 제어하는 레지스터인 반면, ENHNC(358)은 데이터 읽기에 필요한 기능을 제어하는 레지스터이다.
EBR(358)이 데이터 쓰기에 필요한 기능을 제어하는 레지스터인 반면, ENHNC(358)은 데이터 읽기에 필요한 기능을 제어하는 레지스터이다.
이상의 구성을 참조하여 본 발명에 의한 8비트 CPU와 32비트 대역폭을 가지는 주변장치의 연결에 대해 도 4를 참조하여 살펴본다.
도 4는 본 발명의 바람직한 일 실시예에 따른 CPU와 주변장치의 연결 구성을 도시한 도면이다.
도 4에 도시된 바와 같이, 8비트 CPU(300)는 프로그램 메모리(400)와 결합되며, 데이터 버스(410)와 어드레스 버스(420)에 연결되어 주변장치와 연결된다.
프로그램 메모리(400)는 명령어가 저장되는 메모리이며, 도 4에서는 CPU(300)의 외부에 구성되는 것으로 도시하였으나 CPU(300)의 내부에 포함되어 구성될 수도 있다.
데이터 버스(410)는 CPU(300)에서 메모리나 입출력 기기 등의 주변장치에 데이터를 송출하거나 반대로 주변장치에서 CPU(300)에 데이터를 읽어 들일 때 필요한 전송 선로이다. 데이터 버스(420)는 CPU(300)와 메모리 또는 입출력기 간에 어떤 곳으로도 데이터를 전송할 수 있으므로 쌍방향 버스라고도 한다. 데이터 버스(410)는 CPU(300) 내의 ICB(360)와 연결되어 데이터를 주고 받는다.
어드레스 버스(420)는 CPU(300)가 메모리나 입출력 기기의 주소를 지정할 때 사용되는 전송 선로이다. 어드레스 버스(420)는 CPU(300)에서만 주소를 지정할 수 있기 때문에 단방향 버스라고도 한다. 어드레스 버스(420)는 CPU(300)내의 SFR(330)에 포함된 DPTR(340)과 연결되어 DPTR(340)에서 지정한 주소를 전송하는 통로 역할을 수행한다.
32비트의 주소를 생성하고 주변장치로 전송하기 위해서는 기존의 16비트 어드레스를 발생하는 패스(path) 이외에 물리적으로 16비트 패스가 더 필요하므로 본 발명의 바람직한 일 실시예에 따른 CPU는 16비트의 어드레스 패스가 더 포함되어 주변장치의 어드레스 버스(412)와 연결된다.
DPTR(340)의 각각의 레지스터(DPH(342), DPL(344), DPH1(346), DPL1(348))에서 생성된 주소 신호는 32비트 주변장치의 어드레스 버스(412)를 통해 전달된다.
데이터의 송/수신을 위해서는 먼저 DPTR(340)은 주변장치의 대역폭에 따라 증가된 주소 정보를 전송하기 위해 추가된 DPH1(346)과 DPL1(348) 레지스터를 제어하기 위한 제어출력의 조정이 필요하다. 이를 위해 CU에서 제어 출력에 'ld_dpl'1과 'ld_dph1'을 추가하도록 CU(310)를 구성한다.
한편 본 발명의 바람직한 일 실시예에 따라
새로 추가한 DPH1(346)과 DPL1(348) 레지스터를 접근하는 방법은 인클루드 파일(include file)에 'DPL1 DATA 84h', 'DPH1 DATA 85h'라는 명령어를 추가한다.
인클루드 파일은 짜넣기 파일이라고 하며, 복수의 이 공통으로 사용하는 정수나 영역 등에 대해서 그 속성을 정의한 정보를 저장하고 있는 파일을 말한다.
이러한 인크루드 파일에 전술한 명령어들을 추가하고 예를 들면, 'mov DPL1, #12', 'mov DPH1, #34'와 같은 명령어들의 프로그램을 임의로 코딩하여 DPH1(346)과 DPL1(348) 레지스터를 접근하도록 할 수 있다.
한편 주변장치로 전달된 주소 신호는 주변장치의 주소 디코더(미도시)에 입력되어 주소 신호를 선택하기 위한 선택 신호(select signals)를 생성한다. 생성된 주소 선택 신호에 따라 주변장치는 해당 주소로 액세스하여 데이터를 전송받는 CPU의 데이터 쓰기나 데이터를 전송하는 데이터 읽기가 수행되게 된다.
상기한 설명에서는 현재 산업계 전반에서 가장 널리 사용되는 INTEL 사의 8비트 CPU인 8051을 중심으로 설명하였으나 n(임의의 자연수) 비트 처리 단위의 CPU가 n 비트를 초과하는 대역폭을 갖는 주변 장치로 데이터를 쓰기 위한 방법에도 본 발명이 적용될 수 있음은 자명하다.
예를 들어 16비트의 CPU로 32비트의 주변 장치로 데이터를 전송하는 경우라면 먼저 2개의 누산기와 누산기에 각각 연결되는 입력 포트를 더 포함하고 또한 추가되는 누산기와 초과하는 주변장치의 대역폭 만큼 주소를 더 지정할 수 있는 레지스터를 DPTR(340)에 더 추가하여 추가된 2개의 누산기에 16비트 단위로 각각 데이터가 저장되도록 하고, DPTR에 추가된 레지스터에서 32비트의 대역폭을 가진 주변장치가 나타낼 수 있는 모든 주소로 접근할 수 있도록 CPU를 구성할 수도 있다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을 갖는 주변장치와의 연결 방법에 의하면 n 비트 CPU로 n 비트보다 큰 대역폭의 주변장치와 연결하는 경우에도 n 비트 CPU가 n 비트보다 큰 대역폭을 가진 주변장치가 나타낼 수 있는 모든 주소로 접근할 수 있는 장점이 있다.
또한, n 비트 CPU로 n 비트보다 큰 대역폭을 갖는 주변장치로 래퍼를 사용하지 않고도 한번에 데이터를 송/수신할 수 있는 장점이 있다.
Claims (16)
- n 비트를 초과하는 대역폭을 갖는 주변장치와 연결되는 n 비트 처리 단위의 CPU에 있어서,k(2이상인 임의의 자연수)개의 n(임의의 자연수) 비트 누산기; 및상기 주변장치로 또는 주변장치로부터 송/수신되는 데이터가 저장되는 누산기의 주소를 지정하는 n 비트 단위의 k개의 주소 지정 영역을 포함하는 주소 지정 레지스터를 포함하는 것을 특징으로 하는 CPU.
- 제1항에 있어서,상기 CPU는,상기 누산기에 각각 연결되는 입/출력 포트를 더 포함하는 것을 특징으로 하는 CPU.
- 제2항에 있어서,상기 CPU는,상기 입/출력 포트를 통해 입/출력되는 데이터가 n 비트 단위로 각 누산기에 저장되도록 m(임의의 자연수)개의 누산기를 활성화하는 활성 제어부를 포함하는 것 을 특징으로 하는 CPU.
- 제3항에 있어서,상기 활성화되는 누산기의 수(m)는 상기 데이터의 크기/n 비트 이상인 최소의 자연수인 것을 특징으로 하는 CPU.
- 제1항에 있어서,상기 누산기의 개수(k)는 수학식 k = 상기 데이터의 크기/ n 비트를 만족하는 것을 특징으로 하는 CPU.
- 제1항에 있어서,상기 입/출력 포트는,상기 CPU가 연결되는 상기 주변장치의 데이터 버스와 연결되는 것을 특징으로 하는 CPU.
- 제1항에 있어서,상기 주소 지정 레지스터는 상기 주변장치의 어드레스 버스와 연결되는 것을 특징으로 하는 CPU.
- 제1항에 있어서,상기 CPU는,상기 명령어를 저장하는 프로그램 메모리를 더 포함하는 것을 특징으로 하는 CPU.
- n(임의의 자연수) 비트 처리 단위의 CPU(Computer Central Processing Unit)와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법에 있어서,상기 주변장치의 대역폭에 상응하여 n 비트 처리 단위의 CPU의 제어 출력을 조정하는 단계(a); 및송/수신될 데이터가 기록된 n 비트 단위의 k(2이상인 임의의 자연수)개의 누산기 주소를 상기 주변 장치로 전송하는 단계(b)를 포함하되,상기 전송되는 누산기 주소는 n 비트 단위의 k개의 주소 지정 영역을 포함하는 주소 지정 레지스터에서 상기 주변장치로 동시에 전송되는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법.
- 제9항에 있어서,상기 단계(a)의 상기 CPU의 제어 출력 조정은 상기 CPU의 클럭(clock) 수의 조절에 의해 수행되는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법.
- 제9항에 있어서,상기 누산기의 개수(k)는 수학식 k = 상기 데이터의 크기/ n 비트를 만족하는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법.
- 제9항에 있어서,상기 주변장치로 또는 주변장치로부터 송/수신될 최대 n 비트로 분할된 데이터들이 상기 각 누산기에 동시에 저장되는 단계(c)를 더 포함하는 것을 특징을 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법.
- n(임의의 자연수) 비트 처리 단위의 CPU(Computer Central Processing Unit)와 n 비트를 초과하는 대역폭을 갖는 주변 장치 주변장치를 연결할 수 있도록 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,상기 주변장치의 대역폭에 상응하여 n 비트 처리 단위의 CPU의 제어 출력을 조정하는 단계(a); 및송/수신될 데이터가 기록된 n 비트 단위의 k(2이상인 임의의 자연수)개의 누산기 주소를 상기 주변 장치로 전송하는 단계(b)를 포함하되,상기 전송되는 누산기 주소는 n 비트 단위의 k개의 주소 지정 영역을 포함하는 주소 지정 레지스터에서 상기 주변장치로 동시에 전송되는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법을 구현하기 위한 프로그램을 기록한 기록매체.
- 제13항에 있어서,상기 단계(a)의 상기 CPU의 제어 출력 조정은 상기 CPU의 클럭(clock) 수의 조절에 의해 수행되는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법을 구현하기 위한 프로그램을 기록 한 기록매체.
- 제13항에 있어서,상기 누산기의 개수(k)는 수학식 k = 상기 데이터의 크기/ n 비트를 만족하는 것을 특징으로 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법을 구현하기 위한 프로그램을 기록한 기록매체.
- 제13항에 있어서,상기 주변장치로 또는 주변장치로부터 송/수신될 최대 n 비트로 분할된 데이터들이 상기 각 누산기에 동시에 저장되는 단계(c)를 더 포함하는 것을 특징을 하는 n 비트 처리 단위의 CPU와 n 비트를 초과하는 대역폭을 갖는 주변장치를 연결하는 방법을 구현하기 위한 프로그램을 기록한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060069949A KR20080010022A (ko) | 2006-07-25 | 2006-07-25 | n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을갖는 주변장치와의 연결 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060069949A KR20080010022A (ko) | 2006-07-25 | 2006-07-25 | n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을갖는 주변장치와의 연결 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080010022A true KR20080010022A (ko) | 2008-01-30 |
Family
ID=39222225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060069949A KR20080010022A (ko) | 2006-07-25 | 2006-07-25 | n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을갖는 주변장치와의 연결 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20080010022A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019066506A1 (ko) * | 2017-09-29 | 2019-04-04 | 한화정밀기계 주식회사 | 신호 처리 방법, 장치 및 프로그램 |
-
2006
- 2006-07-25 KR KR1020060069949A patent/KR20080010022A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019066506A1 (ko) * | 2017-09-29 | 2019-04-04 | 한화정밀기계 주식회사 | 신호 처리 방법, 장치 및 프로그램 |
CN111164582A (zh) * | 2017-09-29 | 2020-05-15 | 韩华精密机械株式会社 | 用于处理信号的方法、装置和程序 |
US11358280B2 (en) | 2017-09-29 | 2022-06-14 | Hanwha Co., Ltd. | Method, device, and program for processing signals |
CN111164582B (zh) * | 2017-09-29 | 2023-09-05 | 韩华株式会社 | 用于处理信号的方法、装置和程序 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8966227B2 (en) | Semiconductor device and data processing system selectively operating as one of a big endian or little endian system | |
US20050265108A1 (en) | Memory controller which increases bus bandwidth, data transmission method using the same, and computer system having the same | |
US10133497B1 (en) | SPI command censoring method and apparatus | |
US20220121381A1 (en) | Method of organizing a programmable atomic unit instruction memory | |
US11392527B2 (en) | Ordered delivery of data packets based on type of path information in each packet | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
US11797311B2 (en) | Asynchronous pipeline merging using long vector arbitration | |
US20040143693A1 (en) | Data storage apparatus of multiple serial interfaces | |
US20090138673A1 (en) | Internal memory mapped external memory interface | |
KR20080010022A (ko) | n 비트의 CPU 및 이를 이용한 n 비트보다 큰 대역폭을갖는 주변장치와의 연결 방법 | |
CN101305356B (zh) | 用于使内核之间的通信同步的具有标志寄存器的控制装置 | |
US11093434B2 (en) | Communication system and operation method | |
JP2018067049A (ja) | マルチプロセッサシステム | |
US20180336147A1 (en) | Application processor including command controller and integrated circuit including the same | |
KR20080002423A (ko) | n 비트의 CPU 및 이를 이용한 데이터 버스트 라이트방법 | |
CN102622318A (zh) | 一种存储器控制电路及其控制的向量数据寻址方法 | |
KR20080002419A (ko) | n비트의 CPU 및 이를 이용한 데이터 버스트 리드 방법 | |
US20120124272A1 (en) | Flash memory apparatus | |
US20090228612A1 (en) | Flexible Bus Interface and Method for Operating the Same | |
KR20080012467A (ko) | n 비트의 프로세서 및 이를 이용한 주변장치로의 연산데이터의 전송 방법 | |
KR20070097680A (ko) | Cpu의 데이터 리드 방법 및 이를 구현하기 위한프로그램이 기록된 기록매체 | |
KR20050035567A (ko) | 마스크 비트 전송방법 및 장치 | |
JP4480678B2 (ja) | 半導体集積回路装置 | |
US20120005438A1 (en) | Input/output control apparatus and information processing apparatus | |
KR20070093041A (ko) | 8비트보다 큰 대역폭을 갖는 주변장치와 같은 대역폭을사용하는 8비트 cpu 및 8비트 cpu에서 8비트보다 큰대역폭을 갖는 주변 장치와 동일한 대역폭을 가지게 하는방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |