KR960001949B1 - General purpose neural network circuit board adaptable to an - Google Patents

General purpose neural network circuit board adaptable to an Download PDF

Info

Publication number
KR960001949B1
KR960001949B1 KR1019920009678A KR920009678A KR960001949B1 KR 960001949 B1 KR960001949 B1 KR 960001949B1 KR 1019920009678 A KR1019920009678 A KR 1019920009678A KR 920009678 A KR920009678 A KR 920009678A KR 960001949 B1 KR960001949 B1 KR 960001949B1
Authority
KR
South Korea
Prior art keywords
buffer
signal
ibm
dnp
data
Prior art date
Application number
KR1019920009678A
Other languages
Korean (ko)
Other versions
KR940000989A (en
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 KR1019920009678A priority Critical patent/KR960001949B1/en
Publication of KR940000989A publication Critical patent/KR940000989A/en
Application granted granted Critical
Publication of KR960001949B1 publication Critical patent/KR960001949B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

a first buffer for supplying a clock signal to 36 parallel processors without time delay; a second buffer for producing an input/output ready signal of an AT-bus; a fourth buffer for connecting the AT-bus and a process board; a third buffer for sending an output signal from the fourth buffer to a decoder; a fifth buffer for outputting a record and read control signal of a memory; a decoder for decoding an address and data value from the AT-bus; a first selector for producing a signal which selects a DNP chip; a fourth selector for selecting a run or reset signal; a fifth selector for producing a RAM operating signal; a second selector for outputting a memory select signal to the parallel processor; a third selector for outputting a buffer enable signal to the parallel processor; a first communication unit for receiving a flag state of data input/output state check value of the DNP chip through the fourth buffer and for allowing a PC to read the flag state; a third communication unit for allowing an IBM-PC to read a set value of the flag state through the fourth buffer; and a second communication unit for allowing the IBM-PC to read or write data at an input/output port through the fourth buffer.

Description

IBM-PC와 연결하여 사용할 수 있는 범용 신경망 보드General purpose neural network board for connection with IBM-PC

제1도는 신경망 보드의 구성과 전체 시스템 구성도.1 is a configuration of the neural network board and the overall system configuration.

제2도는 병렬 프로세서의 전체 배열.2 is a complete array of parallel processors.

제3도는 병렬 프로세서 중 PE 하나의 구성도.3 is a schematic diagram of one PE in a parallel processor.

제4도는 본 발명에 따른 보드의 탑 레벨(top level) 구성도.4 is a top level configuration of a board according to the present invention.

제5도는 메모리 어드레스 맵(memory address map)의 구성도.5 is a configuration diagram of a memory address map.

제6도는 제5도에 따른 다른 표시예의 구성도.6 is a configuration diagram of another display example according to FIG.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

1 : 신경망 보드 2 : 병렬 프로세서1: neural network board 2: parallel processor

3 : I/O 인터페이스(interface) 4 : IBM-PC3: I / O interface 4: IBM-PC

5 : PE(Processing Element) : DNP(Digital Neural Processor)5: PE (Processing Element): DNP (Digital Neural Processor)

6 : 램(RAM) 7 : 버퍼(buffer)6: RAM 7: Buffer

8 : 병렬 프로세서 중 하나의 기본 모듈8: base module of one of the parallel processors

본 발명은 퍼스널 컴퓨터(IBM-PC)에 연결하여 사용할 수 있는 범용 신경망 보드(general purpose neural net board)에 관한 것이다.The present invention relates to a general purpose neural net board that can be used in connection with a personal computer (IBM-PC).

이 보드는 E-MIND(ETRI-Machine Imitating Neuro Dynamics)보드로 불려진다.This board is called E-MIND (ETRI-Machine Imitating Neuro Dynamics) board.

E-MIND 보드는 병렬성을 이용하여 고속 연산이 되도록 설계되어 있으며, 보드위에는 일반 컴퓨터의 CPU에 해당하는 PE(processing element)가 36개 있다.E-MIND board is designed for high speed operation using parallelism, and there are 36 PE (processing elements) corresponding to CPU of general computer.

여기서 PE는 DNP(digital neural processor ; 신경칩)로 구성되어 있으며, DNP는 신경망 모델들의 시뮬레이션에 적합하도록 전자통신 연구소(ETRI)에서 설계한 8비트-MIMD(multiple-instruction multiple-data)용 프로세서이다.The PE is composed of a digital neural processor (DNP), and the DNP is an 8-bit multiple-instruction multiple-data (MIMD) processor designed by the ETRI for simulation of neural network models. .

DNP 구조에 대한 내용은 특허 출원(출원 번호 90-21852, 1990년 12월 26일)에 기재되어 있다.Details of the DNP structure are described in a patent application (Application No. 90-21852, December 26, 1990).

E-MIND 보드는 IBM-PC의 AT 버스에 연결하여, PC의 빈 메모리 공간에 데이터를읽고, 쓰는 방법을 통해서 보드의 동작을 제어한다. 이에 따라 제어된 동작의 결과는 PC의 모니터를 통해서 볼 수 있다.The E-MIND board connects to the AT bus of the IBM-PC and controls the board's operation by reading and writing data to a free memory space on the PC. The result of the controlled operation can thus be seen on the monitor of the PC.

제1도는 일반적인 E-MIND 보드의 구성을 구비한 전체 시스템 구성을 나타낸다.1 shows the overall system configuration with the configuration of a general E-MIND board.

신경망 보드(1)는 36개의 기본 모듈로 구성된 병렬 프로세서(2)(Processor Array with Switchable Feedback ; PASF)와 데이터 교환을 위한 I/O 인터페이스(interface)(3)의 두 부분으로 구성되어 있다.The neural network board 1 is composed of two parts, a parallel processor 2 consisting of 36 basic modules (PAS) and an I / O interface 3 for data exchange.

그리고 전체 시스템은 IBM-PC(4)와 연결되어 이루어진다.And the whole system is connected to the IBM-PC (4).

즉, 전체 시스템의 동작은 IBM-PC(4)의 AT-버스(또는 XT-버스)에서 필요한 주소와 데이터를 실어보낸다.In other words, the operation of the entire system carries the addresses and data required on the AT-bus (or XT-bus) of the IBM-PC 4.

그러면 병렬 프로세서에서 필요한 데이터는 외부 메모리에 저장하고, 신경칩(DNP)의 프로그램을 신경칩에 다운 로딩(Down loading)한다.Then, the data required by the parallel processor is stored in the external memory, and the program of the neural chip (DNP) is downloaded to the neural chip.

그러면 병렬 프로세서 있는 36개의 신경칩이 자기의 프로그램(신경칩은 MIMD형 프로세서에 원하는 동작의 프로그램을 IBM-PC(4)에서 연결 회로를 이용하여 다운 로딩할 수 있다.The 36 neural chips in the parallel processor can then download their own programs (negative chips to the MIMD type processor) using the connection circuitry from the IBM-PC (4).

제2도는 PASF 부분의 배열과 연결 상태를 표시한다.2 shows the arrangement and connection status of the PASF parts.

PASF 부분은, 제2도와 같이, 2차원 평면에서 하나의 PE가 주변의 네 개에 PE들과 연결되어 있으며, PE간의 통신은 프로그램에 의하여 근접한 네 개의 PE들 중 하나의 PE와 일어난다.In the PASF part, as shown in FIG. 2, one PE is connected to four neighboring PEs in a two-dimensional plane, and communication between the PEs occurs with one of the four PEs adjacent by a program.

최고 우측의 11, 17, 23, 29, 35번 PE들이 각각 최하단의 0, 1, 2, 3, 4번 PE와 연결되어서 피드백 루프(feedback loop)를 형성한다.PEs 11, 17, 23, 29, and 35 at the top right are connected to PEs 0, 1, 2, 3, and 4 at the bottom, respectively, to form a feedback loop.

이러한 연결에 의해서 데이터 흐름을 출력이 입력에 연결되는 단일 방향으로 할 수 있어서 신경망 모델을 이용한 분류기(classifier)로 사용될 때 효과적이다.This connection allows the data flow to be unidirectional with the output connected to the input, which is effective when used as a classifier using neural network models.

병렬 프로세서(PASF) 구조는 특허 출원(출원 번호 90-21850, 1990년 12월 26일)에 기재되어 있다.The parallel processor (PASF) structure is described in patent application (application no. 90-21850, December 26, 1990).

제3도는 병렬 프로세서(PASF)의 기본 모듈 하나의 구성을 나타낸다. 그 구성은 하나의 PE(5 : DNP)와 데이터 램(RAM)(6) 그리고 두 개의 버퍼(7a, 7b)로 되어 있다.3 shows a configuration of one basic module of a parallel processor (PASF). The configuration consists of one PE (5: DNP), a data RAM (6) and two buffers (7a, 7b).

이러한 모듈들 36개가 피드백을 가진 망사(mesh) 형태로 연결되어서 어드레스 버스 및 데이터 버스에 의해 효과적인 통신을 할 수 있도록 배열된 것이 PASF이다.It is PASF that these 36 modules are connected in a mesh form with feedback and arranged for efficient communication by the address bus and data bus.

이와 같이, MIMD형 병렬 프로세서(2)가 완성되었지만, 이 병렬 프로세서(2)와 IBM-PC(4) 사이의 접속을 위한 효율적인 인터페이스회로가 없었다.Thus, although the MIMD type parallel processor 2 was completed, there was no efficient interface circuit for the connection between the parallel processor 2 and the IBM-PC 4.

따라서, 본 발명은 MIMD형 병렬 프로세서와 IBM-PC 사이의 신호 전송을 위한 전기적 접속을 효율적으로 실행할 수 있는 인터페이스 회로를 구비한 범용 신경망 보드를 제공하는데 그 목적이 있다.Accordingly, an object of the present invention is to provide a general-purpose neural network board having an interface circuit capable of efficiently executing an electrical connection for signal transmission between a MIMD type parallel processor and an IBM-PC.

이하, 상기 목적을 달성하기 위한 본 발명의 일 실시예를 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, with reference to the accompanying drawings an embodiment of the present invention for achieving the above object will be described in detail.

제4도는 본 발명의 신경망 보드 전체의 톱 레벨(top level)의 구성도이다.4 is a configuration diagram of the top level of the entire neural network board of the present invention.

제4도에서 상기 제1도 내지 제3도에 도시된 구성 요소에 대해 동일한 기능을 수행하는 구성 요소에 대해서는 동일한 부호를 사용한다. 제4도에서, 프로세서에 해당하는 PASF은 참조 번호 2에 해당하며, 나머지 부분은 I/O 인터페이스 회로에 해당한다.In FIG. 4, the same reference numerals are used for components that perform the same functions for the components shown in FIGS. 1 to 3. In FIG. 4, the PASF corresponding to the processor corresponds to the reference number 2, and the remaining part corresponds to the I / O interface circuit.

제4도를 참조하면, 그 구성은, IBM-PC(4)와 MIMD형 병렬 프로세서(2)의 사이에서 데이터 전송의 수행을 제어하는 인터페이스 장치를 포함하는 신경망 보드(1)에 있어서, 클럭(CLK) 신호를 키워서 36개의 병렬 프로세서(2)에 시간 지연없이 분배하는 제1버퍼(11)와, IBM-PC(4)에 들어가는 입출력 대기 신호(IO-RDY신호)(AT-버스의 규약집에 있는 신호)를 만드는 제2버퍼(12)와, IBM-PC(4)의 AT-버스(또는 XT-버스) 슬롯과 프로세서 보드를 연결하여 메모리 기록/판독 신호(MEMW, MEMR), 데이터 신호(SD0-SD7), 어드레스 신호(SA0-SA23), 드라이브 리셋(DRV-RESET)를 IBM-PC(4)와 상호 주고 받는 제4버퍼(14)와, 상기 제4버퍼(14)에서 출력되는 신호를 키워서 디코더(21)에 보내기 위한 파워 버퍼인 제3버퍼(13)와, 상기 제4버퍼(14)로부터 출력되어 병렬 프로세서(2)에 있는 메모리(제3도의 램(6))의 기록 및 판독용 제어 신호를 출력하는 제5버퍼(15)와, 상기 제4버퍼(14)를 통해 IBM-PC(4)의 AT-버스(또는 XT-버스)로부터 나오는 주소와 데이터 값을 디코딩하는 디코더(21)와, 상기 디코더(21)에서(DNP 선택 레지스터 코드를 이용하며) 디코딩된 신호에 의해 병렬 프로세서(2)내 DNP(Digiatal Neural Processor)칩을 선택하는 신호를 만드는 제1선택부(43)와, 상기 디코더(21)에서 디코딩된 신호를 받아 병렬 프로세서(2)를 동작시키기 위한 런(RUN) 또는 리셋(RESET) 신호를 선택하는 제4선택부(41)와, 상기 디코더(21)에서 디코딩된 신호를 받아 병렬 프로세서(2)의 램(RAM) 동작 신호를 만드는 제5선택부(42)와, 상기 제4선택부(41)에서 선택된 런(RUN) 신호 상태와 상기 제5선택부(42)에서 선택된 메모리(램) 동작 신호가(오프-칩 램 코드를 이용하여) 합쳐져서 메모리 선택 신호(RAM_CS : 이 신호는 오프 메모리(제3도의 '6'참조)의 선택 신호를 만듦)를 상기 병렬 프로세서(2)에 출력하는 제2선택부(44)와, 상기 제5선택부(42)에서 선택된 램 동작 신호를 받아 상기 제1선택부(43)에서 선택된 DNP 칩 선택 신호(DNP_CS)를 이용하여 상기 병렬 프로세서(2)에 버퍼 인에이블 신호(BUF_EN)를 출력하는 제3선택부(45)와, 병렬 프로세서(2)와 IBM-PC(4)가 온-라인 상태일 때 상기 디코더(21)에 의해 데이터 입출력 상태 체크(IRS, ORS) 코드(IBM-PC(4)에서 나오는 주소와 데이터 값)가 디코딩된 결과에 따라 DNP의 데이터 입출력 상태 체크 값의 플래그 상태를 상기 제4버퍼(14)를 통해 받아 상기 IBM-PC(4)가 읽어가도록 하는 제1통신부(31)와, 병렬 프로세서(2)와 IBM-PC(4)가 온-라인 상태일 때 상기 디코더(21)에 의해 데이터 입출력 상태 체크(IRS, ORS) 코드(IBM-PC(4)에서 나오는 주소와 데이터 값)가 디코딩된 결과에 따라 DNP의 데이터 입출력 상태 체크 값의 플래그 상태 값의 플래그 상태가 셋팅되었으면 그 셋팅된 값을 상기 제4버퍼(14)를 통해 상기 IBM-PC(4)가 병렬 프로세서로부터 읽어가도록 하는 제3통신부(33)와, 병렬 프로세서(2)와 IBM-PC(4)가 온-라인 상태일 때 상기 디코더(21)에 의해 데이터 입출력 코드가 디코딩된 결과에 따라 DNP의 입출력 포트에 있는 데이터를 IBM-PC(4)가 상기 제4버퍼(14)를 통해 읽어가거나 쓰도록 하는 제2통신부(32)로 구성된 것이다.Referring to FIG. 4, the configuration of the neural network board 1, which includes an interface device for controlling the performance of data transmission between the IBM-PC 4 and the MIMD type parallel processor 2, includes a clock ( The first buffer 11 which raises the CLK signal and distributes it to 36 parallel processors 2 without time delay, and the I / O wait signal (IO-RDY signal) which enters the IBM-PC 4 (AT-Bus protocol collection Memory write / read signals (MEMW, MEMR) and data signals by connecting the second buffer 12 to the second buffer 12, the AT-bus (or XT-bus) slot of the IBM-PC 4, and the processor board. (SD0-SD7), an address signal (SA0-SA23), a drive reset (DRV-RESET) is exchanged with the IBM-PC (4) and the fourth buffer 14 and output from the fourth buffer (14) Recording of the third buffer 13, which is a power buffer for raising the signal to the decoder 21, and the memory (RAM 6 in FIG. 3) output from the fourth buffer 14 and in the parallel processor 2 And A fifth buffer 15 for outputting the read control signal and a decoder for decoding the address and data values from the AT-bus (or XT-bus) of the IBM-PC 4 through the fourth buffer 14 ( 21 and a first selector 43 for generating a signal for selecting a DNP (Digiatal Neural Processor) chip in the parallel processor 2 by a signal decoded by the decoder 21 (using a DNS select register code). And a fourth selector 41 which receives a signal decoded by the decoder 21 and selects a RUN or reset signal for operating the parallel processor 2, and the decoder 21 A fifth selector 42 which receives the decoded signal and generates a RAM operation signal of the parallel processor 2, a RUN signal state selected by the fourth selector 41, and the fifth selector The memory (RAM) operation signal selected in (42) is combined (using the off-chip RAM code) so that the memory selection signal (RAM_CS: this signal is incorrect). Receiving a RAM operation signal selected by the second selector 44 and the fifth selector 42 for outputting a memory (creating a selection signal of '6' in FIG. 3) to the parallel processor 2; A third selector 45 for outputting a buffer enable signal BUF_EN to the parallel processor 2 using the DNP chip select signal DNP_CS selected by the first selector 43, and the parallel processor 2. ) And the data input / output status check (IRS, ORS) codes (addresses and data values from the IBM-PC 4) are decoded by the decoder 21 when the IBM-PC 4 is on-line. The first communication unit 31, the parallel processor 2, and the IBM- receive the flag state of the data input / output state check value of the DNP through the fourth buffer 14 and allow the IBM-PC 4 to read it. When the PC 4 is in the on-line state, the data input / output status check (IRS, ORS) codes (addresses and data values from the IBM-PC 4) are decoded by the decoder 21. If the flag state of the flag state value of the data input / output state check value of the DNP is set according to the coded result, the IBM-PC 4 reads the set value from the parallel processor through the fourth buffer 14. When the third communication unit 33, the parallel processor 2 and the IBM-PC 4 are in the on-line state, the data in the input / output port of the DNP is determined according to the result of the decoding of the data input / output code by the decoder 21. The second communication unit 32 to the IBM-PC (4) to read or write through the fourth buffer (14).

그리고 상기 신경망 보드(1)상에 상기 인터페이스 장치가 수납되어 일체로 형성된다.The interface device is housed on the neural network board 1 and is integrally formed.

이와같은 E-MIND 보드의 I/O 인터페이스 회로의 동작은 E-MIND 보드(1)가 동작하는 상태와 동작하지 않은 상태에 따라 두 부분으로 구분할 수 있다.The operation of the I / O interface circuit of the E-MIND board can be divided into two parts according to the state in which the E-MIND board 1 operates and does not operate.

먼저, E-MIND 보드(1)가 동작하지 않는 상태에서는 상기한 디코더(21)와 선택부들(41∼45)를 사용하여 병렬 프로세서(PASF)(2)의 기본 모듈중 DNP 내부에 있는 프로그램용 램과 외부의 로컬 메모리(local memory)에 각각 필요한 프로그램과 데이터를 업/다운 로딩(up/down loading)시킨다. 상기 E-MIND 보드(1)가 동작하는 상태에서는 상기한 통신부(31∼33)를 이용하여서 보드의 최하단에 있는 0, 1, 2, 3, 4, 5번 PE들과 IBM-PC와 데이터를 주고 받을 수 있으며, 이들의 통신 상태를 통신부(31∼33)를 통해서 IBM-PC(4)에서 볼 수 있다.First, in the state where the E-MIND board 1 does not operate, the decoder 21 and the selectors 41 to 45 are used for the program inside the DNP among the basic modules of the parallel processor (PASF) 2. Up / down loading programs and data required for RAM and external local memory respectively. In the state where the E-MIND board 1 operates, the communication units 31 to 33 use the communication units 31 to 33 to communicate data with the PEs 0, 1, 2, 3, 4, 5 at the bottom of the board, and the IBM-PC. It is possible to send and receive, and the communication status thereof can be viewed on the IBM-PC 4 through the communication units 31 to 33.

이러한 하단의 PE들과의 통신을 통해서 병렬 프로세서(2)의 동작의 완료 여부를 파악한다.Through the communication with the PEs at the bottom to determine whether the operation of the parallel processor (2) is completed.

상기 제1도에서 E-MIND 보드(1)로 입력하는 신호는 IBM-PC(4)의 버스에 제공되는 신호들과 같은 명칭을 사용한다.The signal input to the E-MIND board 1 in FIG. 1 uses the same names as the signals provided on the bus of the IBM-PC 4.

상기에서 제3버퍼(13) 및 제4버퍼(14)는 상기 IBM-PC(4)의 버스와 E-MIND 보드(1)의 연결을 하고, 제1버퍼(11) 및 제5버퍼(15)는 36개 PE들의 구동을 한다.In the above, the third buffer 13 and the fourth buffer 14 connect the bus of the IBM-PC 4 with the E-MIND board 1, and the first buffer 11 and the fifth buffer 15. ) Drives 36 PEs.

그리고 나머지 제2버퍼(12)는 IBM-PC(4)의 버스 신호중 입출력 대기 신호(IO-RDY신호)를 만드는 것이다.The remaining second buffer 12 generates an input / output wait signal (IO-RDY signal) among the bus signals of the IBM-PC 4.

그리고, 디코더(21)는 상기 제4버퍼(14)를 거쳐 IBM-PC(4)에서 출력되는 번지(address)를 디코딩하여 제1 내지 제5선택부(41∼45)로 신호를 보내고, 상기 제1 내지 제3통신부(31∼33)는 디코더(21)가 직접 제어한다.The decoder 21 decodes the address output from the IBM-PC 4 via the fourth buffer 14 and sends a signal to the first to fifth selectors 41 to 45. The decoders 21 directly control the first to third communication units 31 to 33.

이때 상기 제1 내지 제3통신부(31∼33)은 E-MIND 보드(1)가 동작하는 상태에서 IBM-PC(4)와 병렬 프로세서(2)의 최하단 0, 1, 2, 3, 4, 5번 PE들과 데이터를 주고 받는 역할을 수행하고, 플래그 레지스터를 두어서 최하단의 PE들과 IBM-PC(4)와의 통신에 관한 동작 상태를 확인할 수 있다.At this time, the first to third communication units 31 to 33 are the lowermost 0, 1, 2, 3, 4, of the IBM-PC 4 and the parallel processor 2 while the E-MIND board 1 is operating. It sends and receives data with PEs 5 and puts a flag register to check the operation status regarding communication between the lowest PEs and IBM-PC (4).

이와 같은 동작 상태의 확인은 DNP 칩에서 통신에 관련된 핀의 값을 보는 것이다.This confirmation of the operation state is to see the value of the pin related to communication in the DNP chip.

그리고 상기한 제1 내지 제5선택부(41∼45)는 디코더(21)에서 나오는 신호를 이용하여 램 부분의 각 모듈들에 필요한 제어 신호들을 만들어진다. 상기 선택부들(41∼45)중에 제3선택부(45)는 병렬 프로세서(2)가 동작할때와 동작하지 않을 때 필요하지 않은 데이터의 입력을 막기 위한 3-상태 버퍼를 선택용으로 사용한다.The first to fifth selectors 41 to 45 generate the control signals necessary for the respective modules of the RAM part by using the signal from the decoder 21. Among the selectors 41 to 45, the third selector 45 uses a tri-state buffer for selection of data that is not needed when the parallel processor 2 is operated or not. .

그리고 상기 디코더(21)를 통해 디코딩된 제어 신호에 의해서 제4선택부(41)는 ID-RUN 신호를 출력함으로써 신경망 보드(1)의 동작신호를 만든다.The fourth selector 41 generates an operation signal of the neural network board 1 by outputting an ID-RUN signal by the control signal decoded through the decoder 21.

이러한 선택부들(41∼45)에서 나오는 제어 신호는 다음과 같이 프로세서를 제어한다.The control signal from these selectors 41 to 45 controls the processor as follows.

램들은 각각의 번지가 있어서 IBM-PC(4)에서 직접 할당된 번지에 데이터를 기록하는 방법으로 램을 선택하여 사용한다.The RAMs select and use RAM as a method of writing data to the address assigned directly by the IBM-PC (4).

즉, 램에 데이터를 기록하기 위해서 256Byte×32PE에 해당하는 IBM-PC(4)에 빈 메모리 공간이 필요하다.In other words, in order to write data to RAM, an empty memory space is required in the IBM-PC 4 corresponding to 256 bytes x 32 PE.

여기서, PE는 횡으로 6개씩 한번에 선택되며, IBM-PC(4)의 데이터 버스에 선택될 횡의 값이 실린다.Here, six PEs are selected at a time in the horizontal direction, and the value of the horizontal to be selected is loaded on the data bus of the IBM-PC 4.

상기 IBM-PC(4)의 데이터 버스에 실린 값은 레지스터에 저장되어 변화가 일어날 때까지 PE의 선택된 상태를 유지시킨다.The value loaded on the data bus of the IBM-PC 4 is stored in a register to maintain the selected state of the PE until a change occurs.

이상과 같은 인터페이스 회로를 포함하는 범용 신경망 보드의 전체 동작은 다음과 같다.The overall operation of the general-purpose neural network board including the interface circuit as described above is as follows.

인터페이스 회로에 사용되는 데이터와 주소 값은 IBM-PC(4)의 XT-버스(또는 AT-버스)에서 온다.The data and address values used for the interface circuits come from the XT-bus (or AT-bus) of the IBM-PC (4).

이러한 데이터와 주소 값을 이용하여 인터페이스 회로가 동작되는데, 이때 상기 인터페이스 회로가 정상적으로 동작이 되면 병렬 프로세서가 정상적으로 동작하게 된다.The interface circuit operates using the data and the address value. When the interface circuit operates normally, the parallel processor operates normally.

따라서 상기 IBM-PC(4)로부터 오는 신호는 일차적으로 디코더(21)를 통과하여 사용자가 필요로 하는 제어 신호를 선택부들(41∼45), 버퍼부들(11∼15), 통신부들(31∼33)등에서 발생시킬 수 있도록 한다.Therefore, the signal from the IBM-PC 4 first passes through the decoder 21 to select a control signal required by the user, such as the selectors 41 to 45, the buffers 11 to 15, and the communication units 31 to 31. 33) can be generated.

여기서 발생된 제어 신호를 이용하여서 사용자는 전체 시스템을 제어할 수 있다.By using the control signal generated here, the user can control the entire system.

상기에서 발생된 제어 신호의 일부는 제1선택부(43)로 들어가서 36개의 병렬 프로세서(2)를 선택할 수 있는 신호를 만든다.A part of the control signal generated above enters the first selector 43 to generate a signal capable of selecting 36 parallel processors 2.

이렇게 만든 신호는 병렬 프로세서에 있는 기본 모듈의 선택 신호중 일부에 사용된다.This signal is then used for some of the select signals from the base module in the parallel processor.

여기서 제어되는 신호는 36개의 병렬 프로세서가 독립적으로 선택할 필요가 있는 것에 한해서 선택된다.The signal to be controlled here is selected only if the 36 parallel processors need to be selected independently.

즉, 기본 프로세서 모듈에서 신경칩을 선택하는 신호(칩이 선택되어야 칩이 정상적으로 동작하기 때문에), 메모리를 선택하는 신호, 그리고 버퍼를 동작시키는 인에이블 신호들이다.That is, signals for selecting a neural chip in the basic processor module (since the chip operates normally when the chip is selected), signals for selecting a memory, and enable signals for operating a buffer.

이러한 신호들을 이용하여 특정 칩에 필요한 프로그램과 데이터를 전송시킬 수 있다(그렇지 않으면 MIMD 특성을 살릴 수 없기 때문에).These signals can be used to transfer the programs and data needed for a particular chip (otherwise, the MIMD characteristics cannot be used).

이들 신호는 이를 위한 최소의 신호(모든 신호들을 이렇게 독립적으로 발생시켜서 사용하면 병렬 시스템이라서 제어가 어렵고, 너무 많은 신호가 보드 상에서 흘러다니므로 보드 제작이 어렵다)이다.These signals are the smallest possible signals for this purpose (all these signals can be generated independently, which makes it difficult to control because they are parallel systems, and too many signals flow on the board, making boards difficult).

이외의 신호는 하나로 묶여서 동시에 선택된다.The other signals are grouped together and selected simultaneously.

이에 따라 전체적으로 동시에 선택되는 신호는 디코딩된 신호가 버퍼들을 통과하여서 36개의 병렬 프로세서에 동시에 전달된다.As a result, the signals that are simultaneously selected as a whole are decoded and passed through the buffers to 36 parallel processors simultaneously.

이와같이 버퍼는 단순히 하나의 TTL이 동시에 여러개의 칩에 신호를 전달 시킬 수 없어서 사용하는 파워버퍼이다.As such, the buffer is simply a power buffer that a single TTL can't use to transmit signals to multiple chips at the same time.

그리고 IBM-PC(4)에서 병렬 프로세서로 들어오는 데이터와 주소들도 상기 파워 버퍼를 통과하여 출력된다.Data and addresses coming into the parallel processor from the IBM-PC 4 are also output through the power buffer.

한편, 제5도와 제6도는 호스트 컴퓨터, 즉 IBM-PC(4)의 메모리 맵(memory map) 및 주소에 따른 동작을 표시한다.5 and 6 show operations according to a memory map and an address of the host computer, that is, the IBM-PC 4.

호스트 컴퓨터(IBM-PC) 입장에서 보면 보드의 동작은 IBM-PC(4)가 사용하지 않는 메모리 공간에 데이터를 읽고, 쓰는 방법을 통해서 일어난다.From the standpoint of the host computer (IBM-PC), the board's operation takes place by reading and writing data to a memory space that is not used by the IBM-PC (4).

즉, 신경망 보드(1)를 IBM-PC(4)에 장착한 후에 IBM-PC(4)가 사용하지 않는 제5도의 주소를 IBM-PC(4)가 지정하면 신경망 보드(1)가 명기된 동작을 수행한다.That is, when the neural network board 1 is mounted on the IBM-PC 4 and the IBM-PC 4 designates an address of FIG. 5 that the IBM-PC 4 does not use, the neural network board 1 is specified. Perform the action.

주소에 따른 신경망 보드(1)의 동작 상태는 제6도에서 나타낸 바와 같다.The operating state of the neural network board 1 according to the address is as shown in FIG.

여기서, 주소는 IBM-PC(4)의 메모리 주소의 크기인 20비트로 구성되어 있으며, 이중 상위 4비트(제6도에서 n로 표시)는 사용하는 IBM-PC(4)의 전체 메모리중에서 IBM-PC(4)에서 사용하지 않는 빈 메모리 공간은 사용자가 임의로 사용할 수 있다.Here, the address is composed of 20 bits, which is the size of the memory address of the IBM-PC (4), and the upper four bits (indicated by n in FIG. 6) are the IBM- among the total memory of the IBM-PC (4) used. The empty memory space not used by the PC 4 can be arbitrarily used by the user.

본 발명에서는 상기 빈 메모리 공간을 찾아서 사용한다.In the present invention, the empty memory space is found and used.

제5도에서 도시된 'D번지'와 제6도에서 도시된 4개의 n은 각각 상위 4비트가 비어 있다는 것으로서, 동일한 의미이다.The 'D address' shown in FIG. 5 and the four n shown in FIG. 6 are the same meaning as the upper four bits are empty.

제5도는 메모리 맵을 보여주는 것으로, 그 구성은 다음과 같다.5 shows a memory map, the configuration of which is as follows.

설명에 앞서서, 메모리 영역, 예를 들면, 여기서는 'DXXXX16'를 'DXXXX'로 생략하여 표시한다.Prior to the description, the memory area, for example, 'DXXXX 16 ' is omitted as 'DXXXX' and displayed.

제5도를 참조하여, "상태 레지스터"의 메모리 영역(D40C0)은 36개 DNP 신호의 런(RUN) 신호 상태를 저장하는 영역이다.Referring to FIG. 5, the memory area D40C0 of the "status register" is an area for storing the run signal states of the 36 DNP signals.

"DNP 선택 레지스터"의 메모리 영역(D40A0-D40A7)은 데이터 또는 프로그램이 업/다운 로딩(UP/Down loading)될 DNP를 선택하는 영역이다.The memory areas D40A0-D40A7 of the "DNP selection register" are areas for selecting a DNP to which data or programs are to be uploaded / downloaded.

"상태 체크(ORS, IRS)"의 메모리 영역(D4080, D4060)은 최하단의 6개 PE(제2도의 0∼5번의 PE)들의 통신용 플래그를 체크하는데 사용되는 영역이다. 여기서, 상기 상태 체크(state check ; IRS)(D4060) 번지 데이터를 읽으면 최하단에 6개 PE들의 IRS 핀(DNP 칩에서 제공함)에서 나오는 신호를 PE가 선택하고, 또한 상기 상태 체크(ORS)(D4080) 번지 데이터를 읽으면 최하단에 6개 PE들의 ORS 핀(DNP 칩에서 제공함)에서 나오는 신호를 PE가 선택한다. 그러므로 8개의 번지중 6개를 사용하여 36개의 DNP를 임의로 선택할 수가 있다.The memory areas D4080 and D4060 of the "status check (ORS, IRS)" are areas used to check communication flags of the six lowest PEs (0 to 5 PEs in FIG. 2). Here, when the state check (IRS) (D4060) address data is read, the PE selects a signal from the IRS pins (provided by the DNP chip) of the six PEs at the bottom, and the state check (ORS) (D4080). When reading the address data, the PE selects the signal from the ORS pin of the six PEs (provided by the DNP chip) at the bottom. Therefore, 36 DNPs can be arbitrarily selected using six of eight addresses.

다음으로, "데이터 입출력(I/O)"의 메모리 영역(D4040-D4047)은 시스템 전체의 동작 수행시 보드가 동작하는 상태에서 호스트 컴퓨터와 보드간에 데이터 통신용으로 사용하는 영역이다.Next, the memory area D4040-D4047 of the "data input / output (I / O)" is an area used for data communication between the host computer and the board while the board is operating when the system-wide operation is performed.

즉, 통신용으로 사용하는 상기 D4040-D4047 영역의 8개 번지중에서 최고 하단의 6개 PE(제2도에서 최고 하단의 PE)만이 동작중에 호스트 컴퓨터와 데이터를 교환할 수 있으므로 하위 6개 번지만을 사용하여 각각의 PE와 데이터를 교환하는 영역이다.That is, only the six PEs at the bottom (the PE at the bottom in FIG. 2) can exchange data with the host computer during operation, and only the lower six addresses are used among the eight addresses in the D4040-D4047 area used for communication. Exchange data with each PE.

또한, "온-칩(on-chip) 램"의 메모리 영역(D4020-D4027)은 DNP 내부에 있는 램(RAM)에 데이터를 읽고 쓸 수 있는 영역으로서, 이 영역에 있는 8개 번지는 PE 내부에 데이터를 저장하는데 사용된다.In addition, the memory area (D4020-D4027) of the "on-chip RAM" can read and write data to the RAM inside the DNP, and the eight addresses in this area are inside the PE. Used to store data in

"프로그램 램"의 메모리 영역(D4000-D401F)은 DNP 내부에 있는 램에 프로그램을 읽고 쓸 수 있는 영역으로서, 이 영역에 있는 32개의 번지는 PE에 프로그램용으로 사용된다.The memory areas D4000-D401F of the "program RAM" can read and write programs to the RAM inside the DNP, and 32 addresses in this area are used for programming in the PE.

상기에서 데이터 또는 프로그램이 업/다운 로딩될 PE들은 미리 정해져야 하며, 지정된 PE들의 프로그램과 데이터의 업/다운 로딩을 위해서 사용되는 번지는 PE 내부에 램 주소와 일대일로 대응되어서 호스트 컴퓨터의 번지가 증가함(총 20비트중 하위 6비트가 사용된다)에 따라 PE 내부에 램의 주소가 순차적으로 증가한다.In the above, the PEs to which data or program is uploaded / downloaded should be determined in advance, and the address used for up / downloading of program and data of designated PEs correspond one-to-one with RAM address in the PE so that the address of host computer As it increases (the lower 6 bits of the total 20 bits are used), the address of the RAM increases sequentially in the PE.

"오프-칩(off-chip) 램"의 메모리 영역(D0000-D3FFF)은 보드(1)가 각 모듈들에 있는 외부 데이터 램을 읽고 쓰는 영역이다.The memory area D0000-D3FFF of the "off-chip RAM" is an area in which the board 1 reads and writes external data RAM in each module.

즉, 제6도에 도시된 바와 같이, 13-8비트('d'로 표시됨) 값은 제2도에 표시된 각 모듈의 주소(0∼35)이며, 하위 7-0비트('a'로 표시됨)는 상기 13-8비트에서 선택된 하나의 램에 있는 주소가 된다.That is, as shown in FIG. 6, a value of 13-8 bits (denoted as 'd') is an address (0 to 35) of each module shown in FIG. 2, and the lower 7-0 bits (as 'a'). Denotes an address in one RAM selected from the 13-8 bits.

이때 PE는 256바이트 램을 사용할 수가 있다.The PE can use 256 bytes of RAM.

이에 따라 본 발명은 메모리 영역의 빈 영역을 찾아서 사용하기 위해 PEEK(주소), POKE(주소, 데이터)의 두 명령어를 사용하는데, 이때 POKE, PEEK는 IBM-PC(4)가 사용하는 명령어를 나타낸 것이다.Accordingly, the present invention uses two commands, PEEK (address) and POKE (address, data), to find and use an empty area of the memory area, where POKE and PEEK represent commands used by the IBM-PC (4). will be.

즉, PEEK(DXXXXh)(여기서 h는 4비트를 즉, 16진수를 말함)라는 명령어를 사용하면 IBM-PC(4)가 사용하지 않는 영역이라서 FFh 값이 나온다.In other words, if you use the command PEEK (DXXXXh) (where h is 4 bits, ie hexadecimal), the FFh value comes out because the area is not used by IBM-PC (4).

다시 POKE(DXXXXh, AAh ; AA 값을 DXXXXh 번지에 씀) 명령어를 수행하고 PEEK(DXXXXh) 하여도 메모리가 없는 영역이므로 FFh가 나온다.If you execute POKE (DXXXXh, AAh; Write AA value to DXXXXh) command and PEEK (DXXXXh), FFh comes out because there is no memory.

그러나 상기 AAh의 값은 POKE 명령어가 사용되면 AT-버스(또는 XT-버스)에 실린다.However, the value of AAh is carried on the AT bus (or XT bus) when the POKE command is used.

그래서, 본 발명은 AT-버스(또는 XT-버스)에 장착된 신경망 보드의 I/O 인터페이스(제1도의 도면부호 3참조)에서 이 값을 받아가도록 설계한 것이다.Thus, the present invention is designed to take this value from the I / O interface (see reference numeral 3 in FIG. 1) of the neural network board mounted on the AT-bus (or XT-bus).

이러한 영역을 제5도와 제6도와 같이 정의하여 사용한다(여기서, 제5도와 제6도는 동일한 의미이므로 제6도는 생략한다).This region is defined and used as shown in FIG. 5 and FIG. 6 (where FIG. 6 is omitted since FIG. 5 and FIG. 6 have the same meaning).

따라서, 상기 제4도에서 각 구성요소가 상기 제5도와 제6도를 참조하여 코드와 메모리 영역을 사용하는 예를 들어 설명하면 다음과 같다.Therefore, an example in which each component in FIG. 4 uses a code and a memory area will be described with reference to FIGS. 5 and 6 as follows.

여기서, POKE(쓰기), PEEK(읽기)는 IBM-PC(4)가 사용하는 명령어로서, 두 명령에서 나오는 주소와 데이터 값을 디코더(21)가 디코딩하다.Here, POKE (write) and PEEK (read) are instructions used by the IBM-PC 4, and the decoder 21 decodes the address and data values from the two instructions.

즉, 제4도의 디코더(21)는 다음과 같이 입력되는 각 코드를 디코딩한다.That is, the decoder 21 of FIG. 4 decodes each code input as follows.

첫째로, 상태 레지스터(D40CO)에서, IBM-PC(4)로부터 제4버퍼(14)를 통해 들어오는 명령이 POKE(D40C0h, 1)이라 하면 제4선택부(41)는 36개 DNP 신호의 런(RUN) 신호를 '1'로 하고, POKE(D40C0h, 0)이라 하면 36개 DNP 신호의 런(RUN) 신호를 '0'로 한다.First, in the status register D40CO, if the command coming from the IBM-PC 4 through the fourth buffer 14 is POKE (D40C0h, 1), the fourth selector 41 executes 36 DNP signals. If the (RUN) signal is set to '1' and POKE (D40C0h, 0) is set, the RUN signals of 36 DNP signals are set to '0'.

여기서, 런(RUN) 신호는 DNP를 온-라인/오프-라인(RUN=1/RUN=0) 상태로 만드는 신호로서, RUN=1이면 DNP는 프로그램 메모리에 있는 명령어대로 수행된다.Here, the RUN signal is a signal for bringing the DNP into an on-line / off-line (RUN = 1 / RUN = 0) state. If RUN = 1, the DNP is performed as an instruction in the program memory.

둘째로, DNP 선택 레지스터(D40A0-D40A7)에서, 8개 번지중 6개 번지를 사용하여 36개의 DNP를 임의로 선택할 수 있다.Second, in the DNP selection registers D40A0-D40A7, sixty six out of eight addresses can be used to select 36 DNPs arbitrarily.

상기와 마찬가지로 들어오는 명령이 POKE(D40A0h, 3Fh)이라 하면 상기 제2도의 0에서 5번까지의 DNP(제2도의 도면 부호 8참조)가 제1선택부(43)에 의해 선택된다.Similarly to the above, if the incoming command is POKE (D40A0h, 3Fh), the first selector 43 selects DNPs 0 to 5 (see 8 in FIG. 2) of FIG.

그리고 명령이 POKE(D40A0h, 0Fh)이라 하면 상기 제2도의 2에서 5번까지의 DNP(제2도의 도면 부호 8참조)가 제1선택부(43)에 의해 선택되고, 명령이 POKE(D40A0h, 30h)이라 하면 상기 제2도의 0과 1번의 DNP(8)가 제1선택부(43)에 의해 선택되며, 또한 명령이 POKE(D40A1h, 3Fh)이라 하면 상기 제2도의 6에서 11번의 DNP(8)가 제1선택부(43)에 의해 선택된다.When the command is POKE (D40A0h, 0Fh), DNPs 2 through 5 in FIG. 2 (see 8 in FIG. 2) are selected by the first selection unit 43, and the command is POKE (D40A0h, 30h), the first and second DNPs 8 of FIG. 2 are selected by the first selector 43, and if the command is POKE (D40A1h, 3Fh), the DNPs 6 to 11 of FIG. 8) is selected by the first selector 43.

이와같은 방법으로 상태 레지스터는 사용된다.In this way the status register is used.

여기서, 상기 DNP 선택 레지스터와 상태 레지스터를 사용하면 IBM-PC(4)의 값이 신경망 보드(1)의 레지스터를 사용하면 IBM-PC(4)의 데이터 버스에 있는 값이 신경망 보드(1)의 레지스터에 들어가며, 그 입력된 값은 변화가 있을 때까지 계속 유지된다.Here, when the DNP selection register and the status register are used, the value of the IBM-PC 4 is the value of the neural network board 1 when the register of the neural network board 1 is used. It enters a register, and its input value is held until there is a change.

여기서, 레지스터라고 부르는 이유는 입력값을 계속 유지하기 때문이다.The reason for this is called register because it keeps the input value.

그리고 상태 레지스터는 보드를 동작 상태 또는 동작하지 않는 상태로 만들 수 있는데, 데이터 버스에 0 비트가 1이면 보드를 동작 상태로 만들며, 0이면 동작하지 않는 상태로 만든다.In addition, the status register can put the board into an active state or an inactive state. If the bit 0 on the data bus is 1, the board is made operational; if 0, the board is made inoperable.

셋째로, 상태 체크(ORS, IRS)(D4080, D4060)에서, 상기와 마찬가지로 들어오는 명령이 PEEK(D4080h)이라고 하면 상기 제2도의 1에서 5번까지 DNP의 ORS(ORS 신호는 DNP가 외부로 보내는 신호) 값을 IBM-PC(4)가 제4버퍼(14)와 제1통신부(31) 및 제3통신부(33)를 통해 읽어가도록 한다.Third, in the state check (ORS, IRS) (D4080, D4060), if the incoming command is PEEK (D4080h) as above, the ORS of the DNP (ORS signal is sent from the DNP from 1 to 5 in FIG. 2). Signal) is read by the IBM-PC 4 through the fourth buffer 14, the first communication unit 31 and the third communication unit 33.

또한, 명령이 PEEK(D4060h)이라고 하면 상기 제2도의 1에서 5번까지 DNP의 IRS(IRS 신호는 DNP가 외부로 보내는 신호) 값을 IBM-PC(4)가 제4버퍼(14)와 제1통신부(31) 및 제3통신부(33)를 통해 읽어가도록 한다. 이러한 상기 상태 체크 영역은 최하단의 6개 PE들에 통신용 플래그를 체크하는데 사용된다.In addition, if the command is PEEK (D4060h), the IBM-PC (4) and the fourth buffer (14) are used by the IBM-PC (4) to transmit the IRS (IRS signal of the DNP to the outside) of the DNP from 1 to 5 in FIG. 1 Read through the communication unit 31 and the third communication unit (33). This state check area is used to check the communication flags in the six lowest PEs.

즉, 상태 체크(IRS) 영역의 데이터를 읽으면 최하단의 6개 PE들의 IRS 핀(DNP 칩에서 제공함)에서 나오는 신호를, 그리고 상태 체크(ORS) 영역의 데이터를 읽으면 ORS 핀(DSP 칩에서 제공함)에서 나오는 신호를 볼 수 있다.That is, when reading data in the status check (IRS) area, signals from the IRS pin (provided by the DNP chip) of the six lowest PEs are read, and when reading data in the status check (ORS) area, the ORS pin (provided by the DSP chip). You can see the signal from.

즉, IRS와 ORS 값을 보면 PE의 통신에 관한 동작 상태를 알 수 있는 것이다.In other words, the IRS and ORS values indicate the operational state of the PE communication.

넷째로, 데이터 입출력(I/O)(D4040-D4047)에서, 8개의 번지중 6개 번지를 사용하여 상기와 마찬가지로 들어오는 명령이 POKE(D4040h)이라고 하면 제2도 0번 DNP에 있는 입출력 포트(미도시됨)에 있는 데이터를 IBM-PC(4)가 제2통신부(32)와 제4버퍼(14)를 통해 읽어간다.Fourth, in the data input / output (I / O) (D4040-D4047), if six out of eight addresses use the same instruction as above, POKE (D4040h), the input / output port ( IBM-PC (4) is read through the second communication unit 32 and the fourth buffer (14).

이러한 데이터 입출력 영역은 보드가 동작하는 상태에서 호스트 컴퓨터와 보드간에 데이터 통신용으로 이용한다.This data input / output area is used for data communication between the host computer and the board while the board is operating.

그리고 PEEK(D4040h, Ah)라 하면 제2도의 0번 DNP의 입출력 포트에 Ah 값을 보낸다.And PEEK (D4040h, Ah) sends Ah value to the input / output port of DNP No. 0 in FIG.

또한, 들어오는 명령이 POKE(D4041h)이라고 하면 제2도의 1번 DNP의 입출력 포트에 있는 데이터를 IBM-PC(4)가 제2통신부(32)와 제4버퍼(14)를 통해 읽어간다.If the incoming command is POKE (D4041h), the IBM-PC 4 reads the data in the input / output port of DNP No. 1 in FIG. 2 through the second communication unit 32 and the fourth buffer 14.

그리고 PEEK(D4041h, Ah)라 하면 제2도의 1번 DNP의 입출력 포트에 Ah 값을 보내고, 또 POKE(D4045h)이라고 하면 제2도의 6번 DNP의 입출력 포트에 있는 데이터를 IBM-PC(4)가 제2통신부(32)와 제4버퍼(14)를 통해 읽어가며, PEEK(D4045h, Ah)라 하면 제2도의 5번 DNP의 입출력 포트에 Ah 값을 보낸다.PEEK (D4041h, Ah) sends Ah value to the input / output port of DNP No.1 in FIG. 2, and POKE (D4045h) sends the data at the input / output port of DNP No.6 in FIG. 2 to IBM-PC (4). Is read through the second communication unit 32 and the fourth buffer 14, and PEEK (D4045h, Ah) sends Ah value to the input / output port of DNP No. 5 in FIG.

이하 2, 3, 4번의 DNP도 동일하다.The same applies to DNPs 2, 3 and 4 below.

다섯째로, 온-칩 램(D4020-D4027)에서, 8개의 메모리 영역에 데이터를 읽고 쓸 수 있다.Fifthly, in the on-chip RAM D4020-D4027, data can be read and written to eight memory areas.

상기에서 언급한 바와 같이 읽는 것은 PEEK, 쓰는 것은 POKE이다.As mentioned above, reading is PEEK and writing is POKE.

이 메모리 영역에는 프로그램(신경망 모델의 프로그램) 수행에 필요한 변수들을 가질 수 있고, 이외에 필요한 값도 저장시킬 수 있다.This memory area can contain variables necessary for executing a program (program of neural network model), and can store other necessary values.

이 명령어가 사용되기 전에 데이터를 IBM-PC(4)에 의해 올리기를 원하는 DNP를 상기 DNP 선택 레지스터 코드를 사용하여서 선택하여야 한다.Before this instruction can be used, the DNP which wants to be uploaded by the IBM-PC 4 must be selected using the DNP select register code.

여섯째로, 프로그램 램(D4000-D401F)에서, 32개의 영역에는 프로그램을 IBM-PC(4)가 올린다.Sixth, in the program RAM D4000-D401F, the program is loaded by the IBM-PC 4 in 32 areas.

프로그램이란 DNP 기계어 코드로 작성된 신경망 모델의 프로그램을 말한다. 이 프로그램을 작성하는 것에 따라서 DNP는 원하는 동작을 한다.A program is a program of a neural network model written in DNP machine code. As you write this program, the DNP will do what you want.

예를들면, 문자 인식용 소프트 웨어도 올라갈 수 있고, 음성 인식용 소프트 웨어도 올라갈 수 있다.For example, software for text recognition may be raised and software for speech recognition may be raised.

상기 언급한 바와 같은 명령어가 사용되기 전에 데이터를 IBM-PC(4)에 의해 올리기를 원하는 DNP를 'DNP 선택 레지스터' 코드를 사용하여서 선택한다.Before the instruction as mentioned above is used, the DNP which wants to be uploaded by the IBM-PC 4 is selected using the 'DNP select register' code.

일곱 번째로, 오프-칩 램(D3FFF-D0000)에서, 이 영역에서는 각각의 오프-칩 메모리(제3도의 도면 부호 '6' 참조)에 데이터를 읽고 쓸 수 있다.Seventh, in the off-chip RAM (D3FFF-D0000), data can be read and written to each off-chip memory (see reference numeral '6' in FIG. 3) in this area.

상기에서 언급한 바와 같이 읽은 것은 PEEK, 쓰는 것은 POKE이다.As mentioned above, the reading is PEEK and the writing is POKE.

상기 제6도의 오프-칩 램 코드에서 6개의 d는 디코딩 되어서 36개의 메모리를 각각 선택하며, 8개의 a는 256개의 번지를 표시한다.In the off-chip RAM code of FIG. 6, 6 d are decoded to select 36 memories each, and 8 a denote 256 addresses.

이에 대한 사용예를 들면 다음과 같다.An example of this is as follows.

POKE(D0000h, O0h)라고 하면 제2도 0번 DNP와 같이 있는 오프-칩 메모리의 0번지에 00h이 값을 쓴다.If POKE (D0000h, O0h) is used, 00h writes the value to 0 of the off-chip memory which is with DNP No. 2 in FIG.

POKE(D0001h, 00h)라고 하면 제2도 0번 DNP와 같이 있는 오프-칩 메모리의 1번지에 00h의 값을 쓴다.Suppose that POKE (D0001h, 00h) writes a value of 00h to address 1 of the off-chip memory which is located with DNP No. 2 in FIG.

POKE(D00FFh, AAh)라고 하면 제2도 0번 DNP와 같이 있는 오프-칩 메모리의 FF번지에 AAh의 값을 쓴다.In the case of POKE (D00FFh, AAh), the value of AAh is written in the FF address of the off-chip memory with DNP No. 2 in FIG.

POKE(D0100h, 00h)라고 하면 제2도 1번 DNP와 같이 있는 오프-칩 메모리의 0번지에 00h의 값을 쓴다.If POKE (D0100h, 00h) is used, 00h is written to address 0 of the off-chip memory in the same manner as DNP No. 1 in FIG.

POKE(D1F00h, 00h)라고 하면 제2도 35번 DNP와 같이 있는 오프-칩 메모리의 0번지에 00h의 값을 쓴다.If POKE (D1F00h, 00h) is written, 00h value is written in 0 of the off-chip memory which is with DNP of FIG.

이외의 것도 이와 동일한 방법으로 사용한다.Other than that is used in the same way.

상기한 선택부와 연관된 제5도와 제6도의 코드 설명은 다음과 같다.Code descriptions of FIGS. 5 and 6 associated with the selection section are as follows.

'데이터 I/O 상태체크' 코드는 DNP 칩에서 오는 IRS와 ORS 신호를 알아보는 두 종류로 구성되어 있는데, 이 두 신호의 목적은 온-라인 상태에서 프로세서 보드와 IBM-PC간에 데이터 통신을 할 수 있도록 하는 신호이다.The data I / O status check code consists of two types of IRS and ORS signals coming from the DNP chip. The purpose of these signals is to communicate data between the processor board and the IBM-PC on-line. This is a signal to enable.

이 코드를 사용하면 제2도의 0에서 5번까지의 프로세서(DNP)에서 가지고 있는 IRS와 ORS 신호를 IBM-PC가 알게 되고 사용자는 이 신호를 이용하여서 프로세서 보드의 동작을 확인할 수 있다.Using this code, the IBM-PC knows the IRS and ORS signals from the 0-5 processor (DNP) in Figure 2, and you can use it to verify the processor board's operation.

그리고, '데이터 I/O' 코드는 위에서 언급한 IRS, ORS 신호와 관련된 것으로, 프로세서(제2도의 0에서 5번 프로세서(DNP)만이 이 동작을 한다)가 IBM-PC에 보낸 데이터를 읽어들인다.The 'data I / O' code is related to the above-mentioned IRS and ORS signals, and reads the data sent to the IBM-PC by the processor (only processor 0 to 5 of FIG. 2 performs this operation). .

즉, 이 코드의 값을 IBM-PC의 주소 버스에 실으면 보드에서 디코드하여서 데이터 버스에 프로세서가 보낸 데이터를 IBM-PC에 실어 보낸다.That is, when the value of this code is loaded on the address bus of the IBM-PC, the board decodes the data sent by the processor on the data bus to the IBM-PC.

보내진 데이터의 유무를 IRS, ORS를 이용하여서 확인한다.Check whether there is data sent by using IRS or ORS.

프로세서가 데이터를 IBM-PC에 보내면 ORS를 1로 만들고, 보내지 않았으면 0으로 되어 있다.If the processor sends data to IBM-PC, the ORS is set to 1, otherwise it is set to 0.

반대로 프로세서가 데이터를 받으려고 하면 IRS를 1로 만들어서 데이터를 받을 준비가 되어 있었다는 것을 IBM-PC에 알려준다.Conversely, when a processor attempts to receive data, it sets the IRS to 1 to inform IBM-PC that it is ready to receive data.

또한, '상태 레지스터' 코드는 보드의 전체 동작(DNP의 RUN 신호)을 제어한다.In addition, the 'status register' code controls the overall operation of the board (RUN signal of DNP).

이에 따른 보드의 동작은 다음과 같다.Accordingly, the operation of the board is as follows.

먼저, 칩 또는 메모리를 선택하여 프로그램과 데이터를 다운 로딩한다(이때 테스트를 위해서 업 로딩을 사용한다).First, select the chip or memory to download the program and data (use uploading for testing).

그리고 나서, 원하는 데이터의 다운 로딩이 끝나면 프로그램이 수행되고, 필요하면 상기 통신부들에서 온-라인 통신을 한다.Then, when the downloading of the desired data is completed, the program is executed, and if necessary, the communication units perform on-line communication.

상기 프로그램 수행이 완료되면 칩을 선택하든가, 또는 메모리를 다시 선택하여 프로그램 또는 데이터를 다시 올려서 수행할 수 있다.When the program execution is completed, the chip may be selected or the memory may be selected again to load the program or data again.

또는 현재 선택된 상태에서 프로그램과 데이터를 다시 다운 로딩하여서 프로그램을 수행할 수도 있다.Alternatively, the program can be executed by re-downloading the program and data in the currently selected state.

여기서, 상기 온-라인 상태는 DNP의 프로그램 메모리가 수행되는 상태로서, 프로그램 메모리의 수행이 완료되면 결과를 IBM-PC(4)로 보내는데, 이때 사용하는 명령어는 데이터 입출력과 데이터 입출력 상태 체크 코드가 있다.Here, the on-line state is a state in which the program memory of the DNP is performed, and when the execution of the program memory is completed, the result is sent to the IBM-PC (4). have.

이에 반해서, 오프-라인 상태는 IBM-PC(4)에서 프로세서의 프로그램 메모리와 데이터 메모리에 데이터를 실어준다(오프-칩 램, 프로그램 램, 온-칩 램).In contrast, the off-line state carries data in the program memory and data memory of the processor in the IBM-PC 4 (off-chip RAM, program RAM, on-chip RAM).

또는 결과를 확인하기 위해서 IBM-PC(4)가 데이터를 프로세서로부터 읽어낸다.Or, to verify the result, the IBM-PC 4 reads data from the processor.

각각의 DNP는 독자적인 프로그램 메모리가 있어서 모든 DNP는 독자적인 동작을 수행할 수 있다.Each DNP has its own program memory, so every DNP can perform its own operation.

이렇게 프로세서가 동작할 수 있는 상태가 되면 다음 상태인 온-라인 상태로 넘어가서 프로그램을 수행하게 된다.When the processor is in such a state that it can operate, it moves to the next state, the on-line state, to execute the program.

이에 따른 시스템 전체의 동작은 다음과 같다.The overall system operation is as follows.

제6도에 도시된 상기 오프-칩 램, 프로그램 램, 및 온-칩 램의 명령어를 이용하여서 신경망 보드인 E-MIND 보드의 램에 데이터를 로딩(loading) 한다.The data of the off-chip RAM, the program RAM, and the on-chip RAM shown in FIG. 6 are loaded into the RAM of the E-MIND board, which is a neural network board.

이후에, DNP 칩의 칩선택(CS)과 동작(RUN)의 신호를 활성화시켜서 상기 보드를 활성화시킨다.Thereafter, the boards are activated by activating the signals of the chip select (CS) and the operation (RUN) of the DNP chip.

그러면, 보드는 DNP의 프로그램 램에 저장되어 있는 순서에 따라서 프로그램을 수행한다.Then, the board executes the program in the order stored in the program RAM of the DNP.

이때, 프로그램 수행에서 필요한 데이터는 오프-칩 램 또는 온-칩 램에 있으면, 필요하면 통신부들(31∼33)을 통하여 IBM-PC(4)로부터 읽어온다.At this time, if the data necessary for the program execution is in the off-chip RAM or on-chip RAM, it is read from the IBM-PC 4 through the communication units 31 to 33 if necessary.

이에 따른 시스템 전체의 동작은 DNP의 프로그램 램에 저장된대로 수행되며, 특히 문자인식과 음성인식에 유리하게 동작될 수가 있는 것으로, 신경망 알고리즘에서 일어나는 문제점들을 해결하는데 유효한 것이다.Accordingly, the operation of the entire system is performed as stored in the program of the DNP, and in particular, it can be advantageously operated for text recognition and voice recognition, and is effective for solving problems in neural network algorithms.

그리고나서, 동작(RUN)과 칩 선택(CS)을 비활성화시키면 상기 보드의 동작이 정지된다.Then, deactivating the operation RUN and chip select CS stops the operation of the board.

이상에서 설명한 바와같이, 본 발명에 의해 설계된 E-MIND 보드는 다음과 같은 효과들이 있다.As described above, the E-MIND board designed by the present invention has the following effects.

(1) 신경망 모델들의 특징은 높은 병렬성과 병렬성에 따른 많은 연산량에 있는 것으로서, E-MIND 보드는 이러한 특징을 만족시킬 수 있도록 병렬 프로세서를 가지도록 설계되어 있어서 실시간 데이터 처리가 가능하다.(1) The neural network models are characterized by high parallelism and a large amount of computation due to the parallelism. The E-MIND board is designed to have a parallel processor to satisfy these characteristics, thereby enabling real-time data processing.

(2) 디지털 방식으로 설계된 MIMD용 DNP 칩을 사용하여 E-MIND 보드를 구현하였으므로, PE들에 다운 로딩되는 프로그램에 따라서 다양한 신경망 모델들을 시뮬레이션 할 수 있다.(2) Since E-MIND board is implemented by using digitally designed DNP chip for MIMD, various neural network models can be simulated according to the program downloaded to PEs.

(3) E-MIND 보드는 IBM-PC와 호환성이 있고, 36개 기본 모듈들이 IBM-PC에서 효과적으로 제어할 수 있다.(3) The E-MIND board is compatible with IBM-PC, and 36 basic modules can be effectively controlled from IBM-PC.

(4) 신경망 모델의 소프트웨어에 따라서 E-MIND 보드는 여러 기능을 수행할 수 있으며, 특히 필기체 문자인식과 숫자인식등에 사용할 수 있다.(4) Depending on the software of the neural network model, the E-MIND board can perform various functions. Especially, it can be used for handwritten character recognition and number recognition.

Claims (2)

IBM-PC(4)와 MIMD형 병렬 프로세서(2)의 사이에서 데이터 전송의 수행을 제어하는 인터페이스 장치를 포함하는 신경망 보드(1)에 있어서, 클럭(CLK) 신호를 키워서 36개의 병렬 프로세서(2)에 시간 지연 없이 분배하는 제1버퍼(11)와, IBM-PC(4)에 들어가는 AT-버스의 입출력 대기번호(IO-RDY 신호)를 만드는 제2버퍼(12)와, IBM-PC(4)의 AT-버스와 로세서 보드를 연결하여 메모리 기록/판독 신호, 데이터 신호, 어드레스 신호, 드라이브 리셋(DRV-RESET)를 IBM-PC(4)와 상호 주고 받는 제4버퍼(14)와, 상기 제4버퍼(14)에서 출력되는 신호를 키워서 디코더(21)에 보내기 위한 파워 버퍼인 제3버퍼(13)와, 상기 제4버퍼(14)로부터 출력되어 병렬 프로세서(2)에 있는 메모리의 기록 및 판독용 제어 신호를 출력하는 제5버퍼(15)와, 상기 제4버퍼(14)를 통해 IBM-PC(4)의 AT-버스(또는 XT-버스)로부터 나오는 주소와 데이터 값을 디코딩하는 디코더(21)와, 상기 디코더(21)에서 DNP 선택 레지스터 코드를 이용하여 디코딩된 신호에 의해 병렬 프로세서(2)내 DNP 칩을 선택하는 신호를 만드는 제1선택부(43)와, 상기 디코더(21)에서 디코딩된 신호를 받아 병렬 프로세서(2)를 동작시키기 위한 런(RUN) 또는 리셋(RESET) 신호를 선택하는 제4선택부(41)와, 상기 디코더(21)에서 디코딩된 신호를 받아 병렬 프로세서(2)의 램(RAM) 동작 신호를 만드는 제5선택부(42)와, 상기 제4선택부(41)에서 선택된 런(RUN) 신호 상태와 제5선택부(42)에서 선택된 메모리 동작 신호가 합쳐져서 메모리 선택 신호(RAM_CS)를 상기 병렬 프로세서(2)에 출력하는 제2선택부(44)와, 상기 제5선택부(42)에서 선택된 램 동작 신호를 받아 상기 제1선택부(43)에서 선택된 DNP 칩 선택 신호(DNP_CS)를 이용하여 상기 병렬 프로세서(2)에 버퍼 인에이블 신호(BUF_EN)를 출력하는 제3선택부(45)와, 병렬 프로세서(2)와 IBM-PC(4)가 온-라인 상태일 때 상기 디코더(21)에 의해 데이터 입출력 상태 체크(IRS, ORS) 코드가 디코딩된 결과에 따라 DNP의 데이터 입출력 상태 체크값의 플래그 상태를 상기 제4버퍼(14)를 통해 받아 상기 PC(4)가 읽어가도록 하는 제1통신부(31)와, 병렬 프로세서(2)와 IBM-PC(4)가 온-라인 상태일 때 상기 디코더(21)에 의해 데이터 입출력 상태 체크(IRS, ORS) 코드가 디코딩된 결과에 따라 DNP의 데이터 입출력 상태 체크값의 플래그 상태 값의 플래그 상태가 셋팅되었으면 그 셋팅된 값을 상기 제4버퍼(14)를 통해 상기 IBM-PC(4)가 병렬 프로세서로부터 읽어가도록 하는 제3통신부(33)와, 병렬 프로세서(2)와 IBM-PC(4)가 온-라인 상태일 때 상기 디코더(21)에 의해 데이터 입출력 코드가 디코딩된 결과에 따라 DNP의 입출력 포트에 있는 데이터를 IBM-PC(4)가 상기 제4버퍼(14)를 통해 읽어가거나 쓰도록 하는 제2통신부(32)로 구성된 것을 특징으로 하는 IBM-PC와 연결하여 사용할 수 있는 범용 신경망 보드.In a neural network board (1) comprising an interface device for controlling performance of data transmission between the IBM-PC (4) and the MIMD type parallel processor (2), 36 parallel processors (2) are raised by raising a clock (CLK) signal. ), The first buffer 11 for distributing without time delay, the second buffer 12 for making the input / output wait number (IO-RDY signal) of the AT-bus entering the IBM-PC 4, and the IBM-PC ( A fourth buffer 14 which connects the AT-bus and the processor board of 4) to exchange memory write / read signals, data signals, address signals, and drive resets (DRV-RESET) with the IBM-PC (4); The third buffer 13, which is a power buffer for raising the signal output from the fourth buffer 14 and sending it to the decoder 21, and the memory output from the fourth buffer 14 and in the parallel processor 2 From the AT-bus (or XT-bus) of the IBM-PC 4 via a fifth buffer 15 for outputting write and read control signals and the fourth buffer 14; Is a decoder 21 for decoding an address and a data value, and a first selector for generating a signal for selecting a DNP chip in the parallel processor 2 by a signal decoded using the DNP selection register code in the decoder 21. (43), a fourth selector (41) which receives a signal decoded by the decoder (21) and selects a RUN or RESET signal for operating the parallel processor 2, and the decoder ( A fifth selector 42 which receives the decoded signal 21 and generates a RAM operation signal of the parallel processor 2, a RUN signal state selected by the fourth selector 41, and a fifth The second operation unit 44 which combines the memory operation signals selected by the selection unit 42 to output the memory selection signal RAM_CS to the parallel processor 2, and the RAM operation signal selected by the fifth selection unit 42. Receive the parallel using the DNP chip selection signal (DNP_CS) selected by the first selector 43 A third selector 45 for outputting a buffer enable signal BUF_EN to the processor 2 and the decoder 21 when the parallel processor 2 and the IBM-PC 4 are in an on-line state. A first communication unit for receiving the flag state of the data input / output status check value of the DNP through the fourth buffer 14 and causing the PC 4 to read the data input / output status check (IRS, ORS) code as a result of decoding. 31) and the data input / output of the DNP according to the result of the decoding of the data input / output state check (IRS, ORS) code by the decoder 21 when the parallel processor 2 and the IBM-PC 4 are in the on-line state. When the flag state of the state check value is set to the flag state value, parallel with the third communication unit 33 which causes the IBM-PC 4 to read the set value from the parallel processor through the fourth buffer 14. When the processor 2 and the IBM-PC 4 are in an on-line state, the data input / output code is decoded by the decoder 21. The second communication unit 32 configured to allow the IBM-PC 4 to read or write data in the input / output port of the DNP through the fourth buffer 14 according to the coded result; Universal neural network board that can be connected and used. 제1항에 있어서, 상기 신경망 보드(1) 상에 상기 인터페이스 장치가 수납되어 일체로 형성된 것을 특징으로 하는 IBM-PC와 연결하여 사용할 수 있는 범용 신경망 보드.The general purpose neural network board according to claim 1, wherein the interface device is housed on the neural network board (1) and is integrally formed.
KR1019920009678A 1992-06-04 1992-06-04 General purpose neural network circuit board adaptable to an KR960001949B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920009678A KR960001949B1 (en) 1992-06-04 1992-06-04 General purpose neural network circuit board adaptable to an

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920009678A KR960001949B1 (en) 1992-06-04 1992-06-04 General purpose neural network circuit board adaptable to an

Publications (2)

Publication Number Publication Date
KR940000989A KR940000989A (en) 1994-01-10
KR960001949B1 true KR960001949B1 (en) 1996-02-08

Family

ID=19334165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920009678A KR960001949B1 (en) 1992-06-04 1992-06-04 General purpose neural network circuit board adaptable to an

Country Status (1)

Country Link
KR (1) KR960001949B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100242690B1 (en) * 1996-12-31 2000-02-01 강병호 Control device of subsystem using address line
KR100624916B1 (en) * 2000-01-31 2006-09-19 주식회사 하이닉스반도체 method for forming gate electrode

Also Published As

Publication number Publication date
KR940000989A (en) 1994-01-10

Similar Documents

Publication Publication Date Title
US5321845A (en) Single-chip microcomputer including non-volatile memory elements
US5535342A (en) Pld connector for module having configuration of either first PLD or second PLD and reconfigurable bus for communication of two different bus protocols
US5625780A (en) Programmable backplane for buffering and routing bi-directional signals between terminals of printed circuit boards
US5664214A (en) Parallel processing computer containing a multiple instruction stream processing architecture
EP0022622A1 (en) Programmable controller
US5381529A (en) Shift register with dual clock inputs for receiving and sending information between I/O channels and host based on external and internal clock inputs respectively
EP1297441A1 (en) Enhanced memory algorithmic processor architecture for multiprocessor computer systems
EP0306962B1 (en) Single-chip microcomputer
US8103866B2 (en) System for reconfiguring a processor array
US5375218A (en) DMA channel control apparatus capable of assigning independent DMA transfer control line to respective expansion slots
US20070250685A1 (en) Operation-processing device, method for constructing the same, and operation-processing system and method
US5555214A (en) Apparatus for serial reading and writing of random access memory arrays
KR960001949B1 (en) General purpose neural network circuit board adaptable to an
WO1992008231A1 (en) Rom patch device
US5410718A (en) Single-chip microcomputer having a memory including a one-bit memory element which has 3 inputs and a selector for selecting one of the inputs
JPH09259068A (en) Extended input and output interface
JPH10326224A (en) Digital signal processor
CA1137641A (en) Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip
US6711658B2 (en) Architecture and configuring method for a computer expansion board
KR0146660B1 (en) Parallel neural network system
CN118210529A (en) Upgrading device, upgrading and starting loading method for board card firmware of optimizing machine frame type equipment
KR0152710B1 (en) Control circuit of parallel neural network board for interfacing with at-bus
EP0497443B1 (en) Static ram based microcontroller
JPH05241698A (en) System for controlling input output port
CN117217146A (en) Method for rapidly realizing FPGA dynamic part reconstruction

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

G160 Decision to publish patent application
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee