KR20210025403A - 무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법 - Google Patents

무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20210025403A
KR20210025403A KR1020190105414A KR20190105414A KR20210025403A KR 20210025403 A KR20210025403 A KR 20210025403A KR 1020190105414 A KR1020190105414 A KR 1020190105414A KR 20190105414 A KR20190105414 A KR 20190105414A KR 20210025403 A KR20210025403 A KR 20210025403A
Authority
KR
South Korea
Prior art keywords
fpga
address
slave
fpgas
bits
Prior art date
Application number
KR1020190105414A
Other languages
English (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 KR1020190105414A priority Critical patent/KR20210025403A/ko
Priority to EP20858686.7A priority patent/EP4020242B1/en
Priority to PCT/KR2020/007109 priority patent/WO2021040196A1/ko
Priority to US17/638,778 priority patent/US11818093B2/en
Publication of KR20210025403A publication Critical patent/KR20210025403A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/695Types of network addresses using masks or ranges of addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices

Abstract

본 개시는 LTE(Long Term Evolution)와 같은 4G(4th generation) 통신 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G(5th generation) 또는 pre-5G 통신 시스템에 관련된 것이다. 본 개시의 다양한 실시 예들에 따르면, 무선 통신 시스템에서 기지국의 장치에 있어서, 마스터 FPGA(field programmable gate array); 마스터 FPGA의 제어를 받는 복수의 슬레이브 FPGA들; 및 마스터 FPGA 및 복수의 슬레이브 FPGA들과 연결된 어드레스 마스커를 포함하며, 어드레스 마스커는, 마스터 FPGA에 의하여 각각의 복수의 슬레이브 FPGA들에게 할당된 서로 다른 어드레스 비트들을 수신하고, 서로 다른 어드레스 비트들에 대하여 특정 위치의 비트 값들을 동일한 값으로 마스킹하며, 각각의 복수의 슬레이브 FPGA들에게 대응하는 마스킹된 어드레스 비트들을 송신하도록 구성된 장치가 제공된다.

Description

무선 통신 시스템에서 다중 FPGA를 운영하기 위한 장치 및 방법{APPARATUS AND METHOD FOR OPERATING MULTI-FPGA IN WIRELESS COMMUNICATION SYSTEM}
본 개시(disclosure)는 일반적으로 무선 통신 시스템에 관한 것으로, 보다 구체적으로 무선 통신 시스템에서 다중 FPGA(field programmable gate array)를 운영하기 위한 장치 및 방법에 관한 것이다.
4G(4th generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G(5th generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후(Beyond 4G Network) 통신 시스템 또는 LTE(Long Term Evolution) 시스템 이후(Post LTE) 시스템이라 불리어지고 있다.
높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파(mmWave) 대역(예를 들어, 60기가(60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서의 전파의 경로손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO), 전차원 다중입출력(Full Dimensional MIMO, FD-MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 및 대규모 안테나(large scale antenna) 기술들이 논의되고 있다.
또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀(advanced small cell), 클라우드 무선 액세스 네트워크(cloud radio access network, cloud RAN), 초고밀도 네트워크(ultra-dense network), 기기 간 통신(Device to Device communication, D2D), 무선 백홀(wireless backhaul), 이동 네트워크(moving network), 협력 통신(cooperative communication), CoMP(Coordinated Multi-Points), 및 수신 간섭제거(interference cancellation) 등의 기술 개발이 이루어지고 있다.
이 밖에도, 5G 시스템에서는 진보된 코딩 변조(Advanced Coding Modulation, ACM) 방식인 FQAM(Hybrid Frequency Shift Keying and Quadrature Amplitude Modulation) 및 SWSC(Sliding Window Superposition Coding)과, 진보된 접속 기술인 FBMC(Filter Bank Multi Carrier), NOMA(Non Orthogonal Multiple Access), 및 SCMA(Sparse Code Multiple Access) 등이 개발되고 있다.
최근 무선 통신 시스템에서 처리하는 데이터 양 및 안테나 수의 증가로 인해 기지국의 구성 중 제어부에서 다중 FPGA(field programmable gate array)의 사용이 요구되고 있다. 다중 FPGA의 운영은 생산 비용의 증가, 메모리 사용량의 증가 등이 수반된다. 따라서, 다중 FPGA를 효율적으로 운영하기 위한 장치 및 방법이 필요한 실정이다.
상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는, 무선 통신 시스템에서 다중 FPGA를 효율적으로 운영하기 위한 장치 및 방법을 제공한다.
본 개시의 다양한 실시 예들에 따르면, 무선 통신 시스템에서 기지국의 장치가 제공된다. 상기 장치는, 마스터 FPGA(field programmable gate array), 마스터 FPGA의 제어를 받는 복수의 슬레이브 FPGA들, 마스터 FPGA 및 복수의 슬레이브 FPGA들과 연결된 어드레스 마스커를 포함하며, 어드레스 마스커는, 마스터 FPGA에 의하여 각각의 복수의 슬레이브 FPGA들에게 할당된 서로 다른 어드레스 비트들을 수신하고, 서로 다른 어드레스 비트들에 대하여 특정 위치의 비트 값들을 동일한 값으로 마스킹하며, 각각의 복수의 슬레이브 FPGA들에게 대응하는 마스킹된 어드레스 비트들을 송신하도록 구성된다.
본 개시의 다양한 실시 예들에 따르면, 무선 통신 시스템에서 기지국의 동작 방법이 제공된다. 상기 기지국은 마스터 FPGA(field programmable gate array), 마스터 FPGA의 제어를 받는 복수의 슬레이브 FPGA들, 마스터 FPGA 및 복수의 슬레이브 FPGA들과 연결된 어드레스 마스커를 포함하며, 상기 방법은, 마스터 FPGA에 의하여 각각의 복수의 슬레이브 FPGA들에게 할당된 서로 다른 어드레스 비트들을 어드레스 마스커에 의하여 수신하는 과정과, 서로 다른 어드레스 비트들에 대하여 특정 위치의 비트 값들을 동일한 값으로 어드레스 마스커에 의하여 마스킹하는 과정과, 각각의 복수의 슬레이브 FPGA들에게 대응하는 마스킹된 어드레스 비트들을 어드레스 마스커에 의하여 송신하는 과정을 포함한다.
본 개시의 다양한 실시 예들에 따른 장치 및 방법은, 무선 통신 시스템에서 다중 FPGA를 효율적으로 운영하기 위한 장치 및 방법을 제공한다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템을 도시한다.
도 2는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 구성의 일 예를 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 흐름도를 도시한다.
도 4는 무선 통신 시스템에서 다중 FPGA(field programmable gate array)가 포함된 기지국의 구성의 일 예를 도시한다.
도 5는 무선 통신 시스템에서 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
도 6은 무선 통신 시스템에서 다중 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
도 7은 무선 통신 시스템에서 다중 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
도 8은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
도 9는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 어드레스 마스커의 일 예를 도시한다.
도 10은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
도 11은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
도 12는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
도 13은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
도 14는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 동일 구성 비트를 사용하는 과정의 일 예를 도시한다.
도 15는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA의 복수의 그룹들에 대하여 각자 다른 비트를 할당하는 과정의 일 예를 도시한다.
도 16은 무선 통신 시스템에서 기지국 프로세서의 읽기 및 쓰기 동작에 대한 버스 사이클(BUS cycle)의 일 예를 도시한다.
도 17은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 동작의 흐름도를 도시한다.
도 18은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 동작의 흐름도를 도시한다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.
이하 본 개시는 무선 통신 시스템에서 무선 통신 시스템에서 다중 FPGA(field programmable gate array)를 운영하기 위한 장치 및 방법에 관한 것이다.
이하 설명에서 사용되는 신호를 지칭하는 용어, 채널을 지칭하는 용어, 제어 정보를 지칭하는 용어, 네트워크 객체(network entity)들을 지칭하는 용어, 장치의 구성 요소를 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 개시가 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.
또한, 본 개시는, 일부 통신 규격(예: 3GPP(3rd Generation Partnership Project))에서 사용되는 용어들을 이용하여 다양한 실시 예들을 설명하지만, 이는 설명을 위한 예시일 뿐이다. 본 개시의 다양한 실시 예들은, 다른 통신 시스템에서도, 용이하게 변형되어 적용될 수 있다.
도 1은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템을 도시한다. 도 1은 무선 통신 시스템에서 무선 채널을 이용하는 노드(node)들의 일부로서, 기지국(110), 단말(120), 단말(130)을 예시한다. 도 1은 하나의 기지국만을 도시하나, 기지국(110)과 동일 또는 유사한 다른 기지국이 더 포함될 수 있다.
기지국(110)은 단말들(120, 130)에게 무선 접속을 제공하는 네트워크 인프라스트럭쳐(infrastructure)이다. 기지국(110)은 신호를 송신할 수 있는 거리에 기초하여 일정한 지리적 영역으로 정의되는 커버리지(coverage)를 가진다. 기지국(110)은 기지국(base station) 외에 '액세스 포인트(access point, AP)', '이노드비(eNodeB, eNB)', '5G 노드(5th generation node)', '지노드비(next generation nodeB, gNB)', '무선 포인트(wireless point)', '송수신 포인트(transmission/reception point, TRP)' 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다.
단말(120) 및 단말(130) 각각은 사용자에 의해 사용되는 장치로서, 기지국(110)과 무선 채널을 통해 통신을 수행한다. 경우에 따라, 단말(120) 및 단말(130) 중 적어도 하나는 사용자의 관여 없이 운영될 수 있다. 즉, 단말(120) 및 단말(130) 중 적어도 하나는 기계 타입 통신(machine type communication, MTC)을 수행하는 장치로서, 사용자에 의해 휴대되지 아니할 수 있다. 단말(120) 및 단말(130) 각각은 단말(terminal) 외 '사용자 장비(user equipment, UE)', '이동국(mobile station)', '가입자국(subscriber station)', '원격 단말(remote terminal)', '무선 단말(wireless terminal)', 또는 '사용자 장치(user device)' 또는 이와 동등한 기술적 의미를 가지는 다른 용어로 지칭될 수 있다.
도 2는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 구성의 일 예를 도시한다.
기지국(nodeB, 200)은 DU(digital unit)(210)와 MMU(massive MIMO unit, massive multiple input multiple output unit)/RU(radio unit)(230)의 구성을 포함한다. MMU/RU(230)의 구성에 전원을 인가하면 부팅 순서에 따라서 FPGA 셀렉트 맵(FPGA select map)에 의하여 마스터 FPGA(master FPGA, 232)의 FPGA 설정(로드)(FPGA config(load))의 동작을 수행한 후 슬레이브 FPGA들(slave FPGAs, 233, 234, 235, 232, 237)이 순차적으로 FPGA 설정(로드)의 동작을 수행한다.
본 개시는 복수 개의 슬레이브 FPGA들(233, 234, 235, 232, 237)에 대하여 각각 존재하는 복수 개의 슬레이브 이미지들(slave images)를 하나의 슬레이브 이미지로 대체하기 위한 디지털 로직(digital logic)을 제공한다.
무선 통신 시스템에서 기지국(200)의 일 예는 DU(210)와 RU(230)의 구성을 포함한다. 기지국은 CPRI(common public radio interface, 211, 231)를 통해 DU(210)와 RU(230)가 이더넷(ethernet) 통신을 수행한다. MMU/RU(230)는 적어도 하나의 프로세서를 포함한다. 메인 프로세서(232)가 MMU/RU(230)의 모든 어드레스(address)를 제어한다. MMU(230)는 무선통신 전송을 위한 송신기 및 수신기의 기능을 포함한다. 또한, 메인 프로세서(232) 외에도, 베이스밴드 프로세서(baseband processor, 233))(다운링크 프론트 엔드(downlink front end, DLFE), 업링크 프론트 엔드(uplink front end, ULFE), 랜덤 액세스 채널(random access channel, RACH)), 디지털 IF 프로세서(digital intermediate frequency processor, 234, 235, 236, 237)(DDUC(digital downconverter/upconverter), CFR(crest factor reduction), DPD(digital pre-distortion)) 등이 있다.
도 3은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 흐름도를 도시한다.
본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국은 마스터 FPGA(field programmable gate array), 마스터 FPGA의 제어를 받는 복수의 슬레이브 FPGA들, 마스터 FPGA 및 복수의 슬레이브 FPGA들과 연결된 어드레스 마스커를 포함한다.
단계 301에서, 기지국은 마스터 FPGA에 의하여 각각의 복수의 슬레이브 FPGA들에게 할당된 서로 다른 어드레스 비트들을 어드레스 마스커에 의하여 수신한다. 일 실시 예에 따르면, 서로 다른 어드레스 비트들은 특정 위치의 비트 값들 외의 나머지 비트 값들이 서로 동일하다.
단계 302에서, 기지국은 서로 다른 어드레스 비트들에 대하여 특정 위치의 비트 값들을 동일한 값으로 어드레스 마스커에 의하여 마스킹한다. 일 실시 예에 따르면, 마스킹된 어드레스 비트들은 모든 비트 값들이 서로 동일하다. 일 실시 예에 따르면, 마스킹된 어드레스 비트들은 마스터 FPGA에 의하여 복수의 슬레이브 FPGA들 중 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들과 모든 비트 값들이 서로 동일
단계 303에서, 기지국은 각각의 복수의 슬레이브 FPGA들에게 대응하는 마스킹된 어드레스 비트들을 어드레스 마스커에 의하여 송신한다.
일 실시 예에 따르면, 기지국은 메모리를 더 포함하며, 기지국은 메모리에 마스터 FPGA의 어드레스 비트들에 대한 설정 비트와 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들에 대한 설정 비트를 저장한다. 일 실시 예에 따르면, 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들에 대한 설정 비트는 복수의 슬레이브 FPGA들 모두에게 대응된다.
일 실시 예에 따르면, 기지국은 동일한 기능을 수행하는 복수의 슬레이브 FPGA들에게 동일 어드레스 비트들이 할당되고, 다른 기능을 수행하는 복수의 슬레이브 FPGA들에게 다른 어드레스 비트들이 할당되도록 어드레스 마스커에 의하여 마스킹을 수행한다.
일 실시 예에 따르면, 기지국은 메모리를 더 포함하며, 기지국은 메모리에 마스터 FPGA의 어드레스 비트들에 대한 설정 비트와 복수의 슬레이브 FPGA에 대하여 기능 별로 서로 다른 설정 비트를 저장한다.
일 실시 예에 따르면, 기지국은 마스터 FPGA로부터 복수의 슬레이브 FPGA들에 대하여 할당된 읽기 또는 쓰기 동작의 어드레스 비트들에 대응하여 복수의 슬레이브 FPGA들로부터 수신된 확인 응답(Acknowledgement response)을 어드레스 마스커에 의하여 마스터 FPGA에게 송신한다.
일 실시 예에 따르면, 기지국은 마스터 FPGA로부터 복수의 슬레이브 FPGA들에 대하여 할당된 읽기 또는 쓰기 동작의 어드레스 비트들에 대응하여 복수의 슬레이브 FPGA들로부터 소정의 시간 동안 확인 응답이 수신되지 않는 경우, 어드레스 마스커에 의하여 확인 응답을 생성하고, 생성된 확인 응답을 어드레스 마스커에 의하여 마스터 FPGA에게 송신한다.
도 4는 무선 통신 시스템에서 다중 FPGA(field programmable gate array)가 포함된 기지국의 구성의 일 예를 도시한다.
구체적으로, 도 4는 무선 통신 시스템에서 기지국의 다중 FPGA 시스템의 하드웨어 구성에 대한 블록도이다.
도 4를 참고하면, 기지국의 FPGA 시스템은 블록 A(410), 블록 B(430) 및 블록 C(450)을 포함한다.
블록 A(410)는 마스터 FPGA(411)에 해당하며, 메인 프로세서가 존재한다. 블록 A(410)는 각 슬레이브 FPGA들(431, 432, 433, 434)에게 어드레스를 할당한다. 또한, 블록 A(410)는 각 슬레이브 FPGA들(431, 432, 433, 434)과 어드레스 인터페이스를 통하여 제어 기능을 수행한다.
블록 B(430)는 슬레이브 FPGA들(431, 432, 433, 434)에 해당한다. 각 슬레이브 FPGA(431, 432, 433, 434)는 동일 기능을 수행하는 슬레이브 FPGA에 해당한다. 각 슬레이브 FPGA(431, 432, 433, 434)는 고유의 어드레스를 할당받아 운영되는 디지털 회로 블록이다.
블록 C(450)는 마스터 FPGA(411), 슬레이브 FPGA(431, 432, 433, 434)에 대하여 고유의 FPGA 설정 비트(FPGA configuration bit)(451, 452, 453, 454, 455)를 저장하는 비휘발성 메모리(플래쉬 메모리, flash memory)(450)의 블록이다.
도 5은 무선 통신 시스템에서 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
구체적으로, 도 5은 일반적인 기지국에서 FPGA와 비휘발성 메모리가 구성되어 있는 하드웨어 시스템 블록을 도시한다.
도 5을 참고하면, 기지국은 FPGA(511), 제어부(531) 및 비휘발성 메모리(플래쉬 메모리, flash memory)(550)을 포함한다.
제어부(531)는 FPGA 설정(로드)(FPGA config(load))의 동작을 수행하기 위해서 비휘발성 메모리(550)에 저장되어 있는 FPGA 설정 비트를 이용한다. 기지국의 부팅(booting) 시 제어부(531)는 비휘발성 메모리(550)에 저장되어 있는 FPGA 설정 비트에 기초하여 해당되는 FPGA(511)에 대한 FPGA 설정(로드)(FPGA config(load))을 수행한다.
도 6는 무선 통신 시스템에서 다중 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
구체적으로, 도 6는 NR(new radio) 및 LTE(long term evolution)의 무선 통신 시스템에서 기지국의 하드웨어 시스템 구성의 복잡도가 높아짐에 따라, 다중 FPGA(multi-FPGA)를 사용하는 기지국 구성의 블록도를 도시한다.
기지국의 부팅(booting) 시 제어부(631)는 각 FPGA 설정 비트(651, 652, 653, 654, 655)에 기초하여 FPGA 설정(로드)(FPGA config(load))을 수행한다. 제어부(631)는 프로세서가 포함된 마스터 FPGA(611)에 대하여 벤더 사양 다운로드(vender specification download)를 통해 우선적으로 FPGA 설정(로드)(FPGA config(load))을 수행하며, 이 후 슬레이브 FPGA(612, 613, 614, 615)에 대하여도 벤더 사양 다운로드(vender specification download)를 통해 순차적으로 FPGA 설정(로드)(FPGA config(load))을 수행한다.
FPGA 설정(로드)(FPGA config(load)) 후 마스터 FPGA(611)와 각 슬레이브 FPGA(612, 613, 614, 615)는 고유의 어드레스(address)를 가지게 된다. 각각의 어드레스들로 인하여 여러 개의 설정 비트(configuration bit)가 존재하게 된다.
NR 및 LTE 등의 무선 통신 시스템의 용량 및 안테나 수의 증가로 인해 디지털 프론트 엔드(digital front end, DFE)의 요구되는 용량이 늘어나고 있다. 이에 따라서, DFE로 구현된 슬레이브 FPGA의 용량도 증가된다.
한 개의 FPGA로 마스터 FPGA와 슬레이브 FPGA를 통합하여 구현한다면 요구되는 증가율로 인해 전력 소모량, 발열량, 가격 등이 급격히 증가하게 되어 효율성이 떨어지는 문제가 발생한다. 한 개의 FPGA로 마스터 FPGA와 슬레이브 FPGA를 통합하여 구현할 때 요구되는 자원(resource)의 증가율을 충족시킬 수 있는 FPGA는 존재하지 않는다.
따라서, 무선 통신 시스템의 요구 사항을 충족시키기 위하여, 마스터 FPGA와 여러 개의 슬레이브 FPGA들의 구성이 필요하다. 이 때, 요구되는 DFE의 용량 증가율에 따라서 구성되는 슬레이브 FPGA들의 개수가 결정될 수 있다.
도 7은 무선 통신 시스템에서 다중 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
구체적으로, 도 7은 마스터 FPGA(711)와 여러 개의 슬레이브 FPGA들(712, 713, 714, 715)의 구성을 도시한다.
동일한 DFE 기능을 수행하는 슬레이브 FPGA들(712, 713, 714, 715)을 제어하기 위해서는 각각의 슬레이브 FPGA들(712, 713, 714, 715)마다 어드레스 및 슬레이브 설정 비트(slave configuration bit)가 존재하게 된다. 각각의 슬레이브 FPGA들(712, 713, 714, 715)마다 서로 다른 어드레스가 존재하기 때문에, 어드레스들에 대응하는 각각의 설정 비트를 저장하기 위한 메모리(750)의 공간이 필요하다.
도 7에서는 4개의 동일한 DFE 기능을 수행하는 슬레이브 FPGA들을 기준으로 설명하였으나 이는 예시적이며, 슬레이브 FPGA들의 개수는 요구 사항에 따라서 다르게 설정될 수 있다. 요구 사항의 증가에 따른 관리 이미지의 증가 및 메모리의 필요 용량 증가로 인하여 기지국 제작을 위한 비용 및 제작 기간 등에 대한 비효율의 문제점이 발생할 수 있다.
본 개시는 상기에서 언급된 다중 FPGA 설정이 각각의 슬레이브 FPGA 별로 별도의 FPGA 어드레스 및 FPGA 설정이 구성되는 비효율의 문제점을 해결하기 위하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스크(address mask)를 제공한다. 본 개시에서 제공하는 어드레스 마스크를 이용한 방법 및 장치를 통하여 다중 FPGA를 운영하기 위해 필요한 메모리의 소형화, 단일 FPGA 이미지의 제작 및 관리를 통한 효율성 획득의 효과를 기대할 수 있다.
도 8은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA가 포함된 기지국의 구성의 일 예를 도시한다.
본 개시의 다양한 실시 예들에 따른 기지국의 구성은 블록 1(831)을 포함하는 특징이 있다. 블록 1(831)은 각각의 슬레이브 FPGA들(852, 853, 854, 855)에 대응되는 어드레스 비트 마스커(address bits masker)(832, 833, 834, 835)로 구성된다.
어드레스 비트 마스커(address bits masker)(832, 833, 834, 835)는 마스터 FPGA(811)에 의하여 할당된 슬레이브 FPGA들(812, 813, 814, 815)의 오프셋 비트들(offset bits)을 마스킹(masking)한다.
또한, 어드레스 비트 마스커(address bits masker)(832, 833, 834, 835)는 일정 시간 동안 슬레이브 FPGA들(852, 853, 854, 855) 중 적어도 하나로부터 응답(acknowledgement, ACK) 신호가 수신되지 않을 경우 ACK 신호를 생성하여 마스터 FPGA(811)에게 리턴(return)해주는 행 프로텍션(hang protection) 디지털 회로 장치의 구성을 포함한다.
마스터 FPGA(811)의 메인 프로세서는 마스터 FPGA(811)의 제어를 받는 복수의 슬레이브 FPGA들(812, 813, 814, 815)에 대하여 서로 다른 어드레스 비트들을 할당한다. 마스터 FPGA(811)는 슬레이브 FPGA들(812, 813, 814, 815)에 대하여 할당한 서로 다른 어드레스 비트들을 블록 1(831)의 어드레스 마스커(832, 833, 834, 835)로 송신한다.
어드레스 마스커(832, 833, 834, 835)는 마스터 FPGA(811)로부터 수신한 서로 다른 어드레스 비트들에 대하여 특정 위치의 비트 값들을 동일한 값으로 마스킹한다. 마스킹은 특정 위치의 일부 비트 값들에 대하여만 수행되지만, 마스킹이 수행되는 특정 위치는 서로 다른 어드레스 비트들에서 비트 값들이 서로 다른 위치이므로, 마스킹된 어드레스 비트들은 모든 비트 값들이 서로 동일하다. 마스킹된 어드레스 비트들은 복수의 슬레이브 FPGA들(812, 813, 814, 815) 중 하나의 슬레이브 FPGA(812)에 대하여 마스터 FPGA(811)에 의하여 할당된 어드레스 비트들과 모든 비트 값들이 동일하다.
어드레스 마스커(832, 833, 834, 835)는 마스킹된 어드레스 비트들을 각각 대응하는 복수의 슬레이브 FPGA들(852, 853, 854, 855)에게 송신한다. 복수의 슬레이브 FPGA들(812, 813, 814, 815)과 복수의 슬레이브 FPGA들(852, 853, 854, 855)는 동일한 복수의 슬레이브 FPGA들이다.
메모리(870)는 비휘발성 메모리로 구성될 수 있다. 메모리는 서로 다른 어드레스 비트들마다 서로 다른 설정 비트들을 저장한다.
어드레스 비트들에 대한 마스킹이 없었다면 메모리(870)는 마스터 FPGA(811)의 어드레스에 대응하는 설정 비트(871), 복수의 슬레이브 FPGA들(852, 853, 854, 855)의 서로 다른 어드레스들에 대응하는 설정 비트들(872, 873, 874, 875)을 저장하여야 한다.
그러나, 어드레스 비트들에 대한 마스킹 후 복수의 슬레이브 FPGA들(852, 853, 854, 855)가 모두 하나의 슬레이브 FPGA(852)에 대하여 할당된 어드레스 비트들과 동일한 어드레스 비트들을 가지므로, 메모리(870)는 마스터 FPGA(870)의 어드레스에 대한 설정 비트(871)와 하나의 슬레이브 FPGA(852)의 어드레스에 대응하는 설정 비트(872)만을 저장할 수 있다. 하나의 슬레이브 FPGA(852)의 어드레스에 대응하는 설정 비트(872)는 모든 슬레이브 FPGA들(852, 853, 854, 855)에게 대응된다.
따라서, 메모리는 슬레이브 FPGA들(853, 854, 855)에 대한 설정 비트들(873, 874, 875)의 저장 용량을 아낄 수 있다. 또한, 슬레이브 FPGA들(853, 854, 855)에 대한 설정 비트들(873, 874, 875)을 제조하기 위하여 소요되는 시간을 아낄 수 있다.
이하 도 9 내지 도 15을 통해 도 8과 같이 4개의 슬레이브 FPGA들에 대하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스커에 대하여 설명한다.
도 9는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 어드레스 마스커의 일 예를 도시한다.
구체적으로, 도 9는 어드레스 마스커(911)의 기본적인 입력 포트(input port) 및 출력 포트(output port)에 대한 정의를 도시한다.
도 9를 참고하면, 어드레스 마스커(911)의 입력 포트는 wr_addr(912), rd_addr(913), MASK_START_BIT(914), MASK_BIT_NUM(915), IS_MASK(916)의 구성을 포함하며, 어드레스 마스커(911)의 출력 포트는 wr_chg_addr(917), rd_chg_addr(918)의 구성을 포함한다.
구체적으로, wr_addr(912)은 쓰기(write) 동작에서 사용되는 어드레스이며 32 비트로 구성된다. rd_addr(913)은 읽기(read) 동작에서 사용되는 어드레스이며 32 비트로 구성된다. MASK_START_BIT(914)은 가장 중요한 비트(most significant bit, MSB) 기준으로 마스크 스타트 비트(mask start bit)의 위치를 지시하며 32 비트로 구성된다. MASK_BIT_NUM(915)은 마스크 스타트 비트를 기준으로 유효한 마스킹 비트의 수(valid masking bit number)를 지시하며 32 비트로 구성된다. IS_MASK(916)은 어드레스 마스크가 가능한지(address mask enable) 여부를 나타내는 지시자이며 1 비트로 구성된다.
또한, wr_chg_addr(917)은 쓰기(write) 동작에서 사용되는 마스킹에 적용된 어드레스이며 32 비트로 구성된다. rd_chg_addr(918)은 읽기(read) 동작에서 사용되는 마스킹에 적용된 어드레스이며 32 비트로 구성된다.
도 8과 같은 4개의 슬레이브 FPGA들에 대하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스커에 대한 설정의 예시는 다음과 같다.
(예시)
IS_MASK : '1'
MASK_START_BIT : '25'
MASK_BIT_NUM : '2'
MSB((Most Significant Bit), LSB(Least Significant Bit)
도 10은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
구체적으로, 도 10은 도 11에서 4개의 슬레이브 FPGA들에 대하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스커에 대한 설정의 예시로서, 마스터 FPGA(1011)와 슬레이브 FPGA#0(1012, 1014)의 할당된 어드레스를 비트 마스킹 하는 과정을 도시한다.
마스터 FPGA(1011)는 프로세서 인터페이스로 슬레이브 FPGA#0(1012)에 대하여 0x9000_0000번지의 어드레스를 할당한다. 0x9000_0000는 단일 슬레이브 FPGA의 기준 설정 비트이다. 마스터 FPGA(1011), 어드레스 마스커(1013) 및 슬레이브 FPGA#0(1012, 1014)은 총 32 비트의 비트 어드레스를 사용한다.
어드레스 마스커(1013)는 각 슬레이브 FPGA와 동일하게 사용하기 위한 마스킹 비트의 레인지(range)를 설정 및 운영한다.
도 8에서 예시로 설정된 슬레이브 FPGA는 총 4개이며, 최소한 2 개의 비트를 마스킹 하면 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영이 가능하게 된다.
도 10에서 음영 표시된 부분인 24 비트 및 25 비트가 마스킹에 사용되는 2 개의 비트에 해당한다.
마스터 FPGA(1011)의 메인 프로세서가 슬레이브 FPGA#0(1012, 1014)을 액세스 하기 위하여 어드레스 0x9000_0000번지에 어드레스 마스커(1013)을 추가한다. 어드레스 마스커(1013)가 슬레이브 FPGA#0(1012, 1014)의 어드레스 0x9000_0000번지에서 24 비트 및 25 비트에 대하여 "00"으로 마스킹함으로써 슬레이브 FPGA#0(1012, 1014)은 동일한 어드레스인 0x9000_0000 번지를 사용하고 해당 설정 비트를 사용하게 된다.
도 11는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
구체적으로, 도 11는 도 11에서 4개의 슬레이브 FPGA들에 대하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스커에 대한 설정의 예시로서, 마스터 FPGA(1111)와 슬레이브 FPGA#1(1112, 1114)의 할당된 어드레스를 비트 마스킹 하는 과정을 도시한다.
마스터 FPGA(1111)는 프로세서 인터페이스로 슬레이브 FPGA#1(1112, 1114)에 대하여 0x9100_0000번지의 어드레스를 할당한다. 마스터 FPGA(1111), 어드레스 마스커(1113) 및 슬레이브 FPGA#1(1112, 1114)은 총 32 비트의 비트 어드레스를 사용한다.
어드레스 마스커(1113)는 각 슬레이브 FPGA와 동일하게 사용하기 위한 마스킹 비트의 레인지(range)를 설정 및 운영한다.
도 8에서 예시로 설정된 슬레이브 FPGA는 총 4개이며, 최소한 2 개의 비트를 마스킹 하면 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영이 가능하게 된다.
도 11에서 음영 표시된 부분인 24 비트 및 25 비트가 마스킹에 사용되는 2 개의 비트에 해당한다.
마스터 FPGA(1111)의 메인 프로세서가 슬레이브 FPGA#1(1112, 1114)을 액세스 하기 위하여 어드레스 0x9100_0000번지에 어드레스 마스커(1113)을 추가한다. 어드레스 마스커(1113)가 슬레이브 FPGA#1(1112, 1114)의 어드레스 0x9100_0000번지에서 24 비트 및 25 비트에 대하여 "00"으로 마스킹함으로써 슬레이브 FPGA#1(1112, 1114)은 슬레이브 FPGA#0(1311)와 동일한 어드레스를 사용하게 되며, 동일한 설정 비트를 사용하게 된다.
실제적으로 마스터 FPGA(1111)의 슬레이브 FPGA#1(1112, 1114)에 대한 액세스 어드레스는 0x9100_0000번지이지만 슬레이브 FPGA#1(1112, 1114)가 사용하는 어드레스는 0x9000_0000번지인 것이다.
도 12는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
구체적으로, 도 12는 도 11에서 4개의 슬레이브 FPGA들에 대하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스커에 대한 설정의 예시로서, 마스터 FPGA(1211)와 슬레이브 FPGA#2(1212, 1214)의 할당된 어드레스를 비트 마스킹 하는 과정을 도시한다.
마스터 FPGA(1211)는 프로세서 인터페이스로 슬레이브 FPGA#2(1212, 1214)에 대하여 0x9200_0000번지의 어드레스를 할당한다. 마스터 FPGA(1211), 어드레스 마스커(1213) 및 슬레이브 FPGA#2(1212, 1214)은 총 32 비트의 비트 어드레스를 사용한다.
어드레스 마스커(1213)는 각 슬레이브 FPGA와 동일하게 사용하기 위한 마스킹 비트의 레인지(range)를 설정 및 운영한다.
도 8에서 예시로 설정된 슬레이브 FPGA는 총 4개이며, 최소한 2 개의 비트를 마스킹 하면 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영이 가능하게 된다.
도 12에서 음영 표시된 부분인 24 비트 및 25 비트가 마스킹에 사용되는 2 개의 비트에 해당한다.
마스터 FPGA(1211)의 메인 프로세서가 슬레이브 FPGA#2(1212, 1214)을 액세스 하기 위하여 어드레스 0x9200_0000번지에 어드레스 마스커(1213)을 추가한다. 어드레스 마스커(1213)가 슬레이브 FPGA#2(1212, 1214)의 어드레스 0x9200_0000번지에서 24 비트 및 25 비트에 대하여 "00"으로 마스킹함으로써 슬레이브 FPGA#2(1212, 1214)은 슬레이브 FPGA#0(1314)와 동일한 어드레스를 사용하게 되며, 동일한 설정 비트를 사용하게 된다.
실제적으로 마스터 FPGA(1211)의 슬레이브 FPGA#2(1212, 1214)에 대한 액세스 어드레스는 0x9200_0000번지이지만 슬레이브 FPGA#2(1212, 1214)가 사용하는 어드레스는 0x9000_0000번지인 것이다.
도 13은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 할당된 어드레스를 비트 마스킹 하는 과정의 일 예를 도시한다.
구체적으로, 도 13은 도 11에서 4개의 슬레이브 FPGA들에 대하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스커에 대한 설정의 예시로서, 마스터 FPGA(1311)와 슬레이브 FPGA#3(1312, 1314)의 할당된 어드레스를 비트 마스킹 하는 과정을 도시한다.
마스터 FPGA(1311)는 프로세서 인터페이스로 슬레이브 FPGA#3(1312, 1314)에 대하여 0x9300_0000번지의 어드레스를 할당한다. 마스터 FPGA(1311), 어드레스 마스커(1313) 및 슬레이브 FPGA#3(1312, 1314)은 총 32 비트의 비트 어드레스를 사용한다.
어드레스 마스커(1313)는 각 슬레이브 FPGA와 동일하게 사용하기 위한 마스킹 비트의 레인지(range)를 설정 및 운영한다.
도 8에서 예시로 설정된 슬레이브 FPGA는 총 4개이며, 최소한 2 개의 비트를 마스킹 하면 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영이 가능하게 된다.
도 13에서 음영 표시된 부분인 24 비트 및 25 비트가 마스킹에 사용되는 2 개의 비트에 해당한다.
마스터 FPGA(1311)의 메인 프로세서가 슬레이브 FPGA#3(1312, 1314)을 액세스 하기 위하여 어드레스 0x9300_0000번지에 어드레스 마스커(1313)을 추가한다. 어드레스 마스커(1313)가 슬레이브 FPGA#3(1312, 1314)의 어드레스 0x9300_0000번지에서 24 비트 및 25 비트에 대하여 "00"으로 마스킹함으로써 슬레이브 FPGA#3(1312, 1314)은 슬레이브 FPGA#0(1314)와 동일한 어드레스를 사용하게 되며, 동일한 설정 비트를 사용하게 된다.
실제적으로 마스터 FPGA(1311)의 슬레이브 FPGA#3(1312, 1314)에 대한 액세스 어드레스는 0x9300_0000번지이지만 슬레이브 FPGA#3(1312, 1314)가 사용하는 어드레스는 0x9000_0000번지인 것이다.
상기 도 10 내지 도 13의 방법을 통해 총 4개의 슬레이브 FPGA 어드레스를 1개의 동일 슬레이브 FPGA 어드레스로 대체할 수 있다. 또한, 총 4개의 슬레이브 FPGA에 대하여 1개의 동일 설정 비트를 사용할 수 있다.
도 14는 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA에 대하여 동일 구성 비트를 사용하는 과정의 일 예를 도시한다.
도 14를 참고하면, 슬레이브 FPGA#0(1412), 슬레이브 FPGA#1(1413), 슬레이브 FPGA#2(1414), 슬레이브 FPGA#3(1415)은 어드레스 마스크에 의하여 동일 어드레스가 할당하게 되고 동일 설정 비트를 사용하게 된다. 따라서, 슬레이브 FPGA를 로드(load)하는 제어부(1431)의 제어로 슬레이브 FPGA#1(1413)의 설정 비트를 슬레이브 FPGA#0(1412)의 설정 비트로 대체할 수 있다. 동일한 방법으로 슬레이브 FPGA#2(1414) 및 슬레이브 FPGA#3(1415)의 설정 비트를 슬레이브 FPGA#0(1412)의 설정 비트로 대체할 수 있다.
이와 같은 방법을 사용하면 블록 2(1450)의 비휘발성 메모리(플래쉬 메모리, flash memory)(1451)의 용량을 최소한 절반 이상 줄일 수 있는 효과가 있다. 즉, 슬레이브 FPGA#1(1413), 슬레이브 FPGA#2(1414), 슬레이브 FPGA#3(1415)에 대하여 사용되었을 메모리(1451)의 용량(1454, 1455, 1456)을 사용하지 않을 수 있다.
상기 도 10 내지 도 14은 도 8에서 4개의 슬레이브 FPGA들에 대하여 동일 FPGA 어드레스 및 동일 FPGA 설정을 운영하기 위한 어드레스 마스커에 대한 설정의 예시이다.
본 개시의 다양한 실시 예들에 따른 방법은 DEF의 용량이 증가할수록 슬레이브 FPGA의 어드레스 및 설정을 동일화 하기 위하여 효과적이다.
동일화의 일반화 수식은 다음과 같다.
Figure pat00001
여기서, Max_Add_Bits는 최대 프로세스 어드레스 비트(maximum process address bits)이고, Mask_Start_Bit는 가장 중요한 비트(most significant bit, MSB)를 기준으로 한 마스킹 시작 비트(masking start bits)이며, Mask_Bits_Num는 마스크 스타트 비트를 기준으로 유효한 마스킹 비트의 수(valid masking bit number)이고, Remain_Bits는 Max_Add_Bits에서 마스킹 비트들을 제외한 나머지 비트들이며, Max_Add_Bits는 32, 64, 128 비트(bits) 등으로 다양하게 설정 가능하고, Mask_Start_Bits는 슬레이브 FPGA의 액세스 영역 크기(access region size)에 맞게 설정 가능하며, Mask_Bits_Num는 동일 슬레이브 FPGA의 공통 개수만큼 설정 가능하다.
도 15은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 다중 FPGA의 복수의 그룹들에 대하여 각자 다른 비트를 할당하는 과정의 일 예를 도시한다.
도 15은 상기 도 10 내지 도 14에서 설명한 과정을 확장하여 복수의 슬레이브 FPGA들을 수행하는 기능 별로 그룹화 하여 각각 어드레스 마스킹 하는 과정을 도시한다.
도 15을 참고하면, 마스터 FPGA 메인 프로세서에 의하여 모든 슬레이브 FPGA들(1511, 1512, 1521, 1522, 1531, 1532)에 대하여 서로 다른 어드레스 및 비트가 할당된다. 즉, 동일한 A 기능을 수행하더라도 슬레이브 A FPGA #0(1511)과 슬레이브 A FPGA #F(1512)는 서로 다른 어드레스가 할당되고 서로 다른 설정 비트를 사용한다. 또한, 동일한 B 기능을 수행하더라도 슬레이브 B FPGA #0(1521)과 슬레이브 B FPGA #F(1522)는 서로 다른 어드레스가 할당되고 서로 다른 설정 비트를 사용한다. 또한, 동일한 C 기능을 수행하더라도 슬레이브 C FPGA #0(1531)과 슬레이브 C FPGA #F(1532)는 서로 다른 어드레스가 할당되고 서로 다른 설정 비트를 사용한다.
A 기능을 수행하는 복수 개의 슬레이브 FPGA들(1511, 1512), B 기능을 수행하는 복수 개의 슬레이브 FPGA들(1521, 1522), C 기능을 수행하는 복수 개의 슬레이브 FPGA들(1531, 1532)에 대하여 어드레스 마스커(1513, 1514, 1523, 1524, 1533, 1534)가 각자 기능별로 다른 비트를 할당한다. 이에 따라서, 동일한 기능을 수행하는 슬레이브 FPGA들은 동일 어드레스가 할당되고 동일 설정 비트를 사용한다. 또한, 서로 다른 기능을 수행하는 슬레이브 FPGA들은 서로 다른 어드레스가 할당되고 서로 다른 설정 비트를 사용한다.
각각의 기능 별로 동일한 FPGA 설정 비트를 사용하기 때문에, 동일한 기능을 수행하는 슬레이브 FPGA들의 수만큼 메모리(1540)의 용량을 절약할 수 있다.
이하 도 16 내지 도 18에서는 마스터 FPGA와 각 슬레이브 FPGA 간의 프로세서 인터페이스에서 프로세서가 멈추는 오류를 방지하기 위하여 일정 시간 동안 슬레이브 FPGA로부터 응답(acknowledgement, ACK) 신호가 수신되지 않을 경우 ACK 신호를 생성하여 마스터 FPGA에게 리턴(return)해주는 행 프로텍션(hang protection)의 기능을 설명한다.
도 16는 무선 통신 시스템에서 기지국 프로세서의 읽기 및 쓰기 동작에 대한 버스 사이클(BUS cycle)의 일 예를 도시한다.
구체적으로, 도 16는 일반적인 중앙 처리 장치(central processing unit, CPU)에서 읽기(read) 및 쓰기(write)에 대한 프로세스 버스 사이클(process BUS cycle)을 도시한다. 본 개시에서 도 16의 CPU는 마스터 FPGA의 메인 프로세서에 해당할 수 있다.
도 16를 참고하면, 일반적인 중앙 처리 장치는 읽기 또는 쓰기의 어드레스(1603)일 경우 응답(response)으로 데이터 확인(data ACK, 1606)을 보내 동작한다. 그러나, 읽기 또는 쓰기의 어드레스에 대한 오류 또는 기타 다른 이유로 인하여 데이터 응답의 동작이 수행되지 않는 경우 중앙 처리 장치는 응답을 계속 기다리게 되어 다른 동작을 진행하지 않게 된다. 즉, 본 개시에서 마스터 FPGA가 어드레스 마스킹을 통해 동일 어드레스를 사용하는 복수의 슬레이브 FPGA 중 어느 하나로부터 데이터 응답을 수신하지 못하는 경우, 마스터 FPGA의 메인 프로세서는 응답을 계속 기다리게 되어 다른 동작을 진행하지 않게 된다.
구체적으로, 프로세서는 기본적으로 CPU I/F(CPU interface)의 기능을 수행하고, 또한 CPU I/F 읽기/쓰기(CPU I/F read/write)의 기능을 수행하도록 구성된다.
프로세서가 쓰기 모드(write mode)인 경우, 해당 어드레스(1601)와 어드레스 스트로브(address strobe, 1602)(low)가 활성화되며, 읽기_쓰기(read_write, 1603)가 낮은 상태(low)로 된다. 어드레스에 할당된 데이터 라인(1605)과 데이터 스트로브(1604)(low)가 활성화되며 송신한다. 프로세서는 이후 데이터가 잘 수신되었는지에 대한 데이터 확인(data ACK, 1606)(low)를 수신한다.
프로세서가 읽기 모드(read mode)인 경우, 해당 어드레스(1601)와 어드레스 스트로브(address strobe, 1602)(low)가 활성화되며, 읽기_쓰기(read_write, 1603)가 높은 상태(high)로 된다. 어드레스에 할당된 데이터 라인(1605)과 데이터 스트로브(1604)(low)가 활성화되며 송신한다. 프로세서는 이후 데이터가 잘 송신되었는지에 대한 데이터 확인(data ACK, 1606)(low)를 수신한다.
복수 개의 슬레이브 FPGA들을 사용함으로써 어느 하나의 슬레이브 FPGA의 불량 또는 미동작으로 인하여, 마스터 FPGA의 메인 프로세서가 어드레스를 송신하였음에도 불구하고 응답(ACK)을 수신하지 못하는 경우, 마스터 FPGA의 메인 프로세서는 복수 개의 슬레이브 FPGA들에 대하여 다른 명령을 내릴 수가 없게 된다.
이러한 문제점을 해결하기 위하여, 본 개시에서는 마스터 FPGA와 복수 개의 슬레이브 FPGA들 사이의 어스레스 마스커 블록에서 응답(ACK) 신호를 생성하여 마스터 FPGA에게 송신함으로써 불량 또는 미동작의 슬레이브 FPGA를 제외하고 다른 슬레이브 FPGA들은 정상 동작을 계속 수행하도록 하는 행 프로텍션(hang protection)을 제공한다.
따라서, 본 개시는 어드레스 마스킹과 함께 행 프로텍션의 기능을 수행하는 방법 및 장치를 제공한다.
도 17은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 동작의 흐름도를 도시한다.
구체적으로, 도 17은 읽기 또는 쓰기 동작에 대하여 행 프로텍션을 수행하는 과정의 흐름도를 도시한다.
읽기 또는 쓰기의 어드레스 액세스를 수행할 경우 마스터 FPGA의 메인 프로세서는 어드레스 및 스트로브를 복수의 슬레이브 FPGA들에게 보내고 그에 대한 응답으로 데이터 확인(data ACK)을 수신한다.
단계 1701에서, 마스터 FPGA와 복수의 슬레이브 FPGA들 사이의 어드레스 마스커 블록은 스트로브를 모니터링한다.
단계 1702에서, 어드레스 마스커 블록은 스트로브를 모니터링한 결과 복수의 슬레이브 FPGA들로부터 데이터 확인 응답(data ACK response)가 발생하지 않은 시간을 카운트한다.
단계 1703에서, 어드레스 마스커 블록은 일정 시간 동안 복수의 슬레이브 FPGA들로부터 데이터 확인 응답(data ACK response)가 발생하지 않은 경우, 복수의 슬레이브 FPGA들 대신 데이터 확인 응답(data ACK response) 신호를 생성한다. 일 실시 예에 따르면, 상기 일정 시간은 operation clock * x"FFD" 설정으로 결정될 수 있다.
상기 과정을 통해 슬레이브 FPGA의 연결 오류, 디바이스 불량 또는 기타 슬레이브 FPGA 관련 오류가 발생할 경우 마스터 FPGA에서 행 프로텍션(hang protection)이 된다.
도 18은 본 개시의 다양한 실시 예들에 따른 무선 통신 시스템에서 기지국의 동작의 흐름도를 도시한다.
구체적으로, 도 18은 도 17의 과정을 상세하게 표현한 흐름도를 도시한다.
단계 1801에서 어드레스 마스커 블록은 스트로브를 모니터링한 결과 DATA_ACK의 값이 0인지 여부를 결정한다. DATA_ACK = 0 인 경우, 슬레이브 FPGA가 정상 동작으로써 출력함을 의미한다. 단계 1801을 수행한 결과, 슬레이브 FPGA가 정상 동작하는 것으로 결정되면 단계 1806을 통해 슬레이브 FPGA로부터의 DATA_ACK을 출력한다. 단계 1801을 수행한 결과, 슬레이브 FPGA가 비정상 동작하는 것으로 결정되면 단계 1802을 수행한다.
단계 1802에서 어드레스 마스커 블록은 데이터 스트로브(DATA_Strobe)의 값이 0인지 여부를 결정한다. 단계 1802를 수행한 결과, 데이터 스트로브의 값이 0인 경우 단계 1803을 수행한다. 단계 1802를 수행한 결과, 데이터 스트로브의 값이 0이 아닌 경우, 즉, DATA_Strobe = 1인 경우, 어드레스 마스커 블록은 초기화를 하기 위하여 단계 1801를 다시 수행한다.
단계 1803에서 어드레스 마스커 블록은 스트로브 타임 카운트(Strobe time cnt) 동작을 수행한다. 즉, 어드레스 마스커 블록은 스트로브를 모니터링한 결과 복수의 슬레이브 FPGA들로부터 데이터 확인 응답(data ACK response)가 발생하지 않은 시간을 카운트한다.
단계 1804에서 어드레스 마스커 블록은 스트로브 타임 카운트가 100ms일 때 DATA_ACK의 값이 0인지 여부를 결정한다. 단계 1804를 수행한 결과, DATA_ACK = 0 인 경우, 슬레이브 FPGA가 정상 동작하는 것으로 결정하고 단계 1806을 통해 슬레이브 FPGA로부터의 DATA_ACK을 출력한다. 단계 1804를 수행한 결과, 슬레이브 FPGA가 비정상 동작하는 것으로 결정되면 단계 1805를 수행한다.
단계 1805에서 어드레스 마스커 블록은 DATA_ACK = 0의 신호를 생성한다. 즉, 어드레스 마스커 블록은 슬레이브 FPGA 대신 DATA_ACK을 생성한다. 일 실시 예에 따라서, 어드레스 마스커 블록은 스트로브 타임 카운트가 100.1ms일 때 DATA_ACK을 생성한다.
단계 1806에서 어드레스 마스커 블록은 DATA_ACK을 출력한다. 어드레스 마스커 블록은 정상 작동한 슬레이브 FPGA의 DATA_ACK 또는 단계 1805에서 어드레스 마스커 블록이 대신 생성한 DATA_ACK을 마스터 FPGA로 전송한다.
Figure pat00002
상기 [표 1]은 본 개시의 다양한 실시 예들에 따라서 다중 FPGA 설정을 동일 어드레스 및 동일 설정으로 운영할 때 어드레스 마스커에 대하여 설꼐된 FPGA 자원을 나타낸다.
LTE 무선 통신 시스템을 위한 MMU 64T64R(64Tx and 64 Rx)의 일 예는 DFE_FPGA 1개당 처리 용량은 8T8R(8Tx and 8Rx) 로 설계되었으며, 64T64R을 구현하기 위해 총 8개의 DFE_FPGA를 사용한다. 상기 MMU에서 사용되는 DFE_FPGA의 설정 비트 크기(configuration bit size)는 7.91MB이며, DFE_FPGA의 설정 비트(configuration bit)를 제작하는 개당 시간은 대략 7시간이 소요된다.
종래의 다중 FPGA를 구현하는 방법에 의하면, 설정 메모리 크기(config memory size) = 7.91MB * 8(DFE_FPGA 개수) = 63.28MB이고, 설정 비트 제작 시간(config bit made time) = 대략 7시간 * 8(DFE_FPGA 개수) = 56시간 (@ server unit)이다.
본 개시의 다양한 실시 예들에 따르면, 설정 메모리 크기(config memory size) = 7.91MB * 1(동일 DFP_FPGA) = 7.91MB이고, 설정 비트 제작 시간(config bit made time) = 대략 7시간(DFE_FPGA) = 7시간 (@ server unit)이다.
따라서, 본 개시의 다양한 실시 예들에 따르면 종래의 방법과 비교할 때 비휘발성 메모리의 필요 용량 및 설정 비트 제작 시간 등에 대하여 총 12.5%로 줄일 수 있으므로 효율적이다.
NR 무선 통신 시스템을 위한 MMU 32T32R(32Tx and 32 Rx)의 일 예는 DFE_FPGA 1개당 처리 용량은 8T8R(8Tx and 8Rx)로 설계되었으며, 32T32R을 구현하기 위해 총 4개의 DFE_FPGA를 사용한다. 상기 NR MMU에서 사용되는 DFE_FPGA의 설정 비트 크기(configuration bit size)는 7.25MB이며, DFE_FPGA의 설정 비트(configuration bit)를 제작하는 개당 시간은 대략 3.5시간 소요된다.
종래의 다중 FPGA를 구현하는 방법에 의하면, 설정 메모리 크기(config memory size) = 7.25MB * 4(DFE_FPGA 개수) = 29MB이고, 설정 비트 제작 시간(config bit made time) = 대략 3.5시간 * 4(DFE_FPGA 개수) = 14시간 (@ server unit)이다.
본 개시의 다양한 실시 예들에 따르면, 설정 메모리 크기(config memory size) = 7.25MB * 1(동일 DFP_FPGA) = 7.25MB이고, 설정 비트 제작 시간(config bit made time) = 대략 3.5시간(DFE_FPGA) = 3.5 시간 (@ server unit)이다.
따라서, 본 개시의 다양한 실시 예들에 따르면 종래의 방법과 비교할 때 비휘발성 메모리의 필요 용량 및 설정 비트 제작 시간 등에 대하여 총 25%로 줄일 수 있으므로 효율적이다.
또한, 본 개시의 다양한 실시 예들에 따르면 행 프로텍션(hang protection)의 과정을 통해 슬레이브 FPGA의 오류인 경우에도 메인 FPGA의 프로세서 액세스가 가능한 효과가 있다.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(read only memory, ROM), 전기적 삭제가능 프로그램가능 롬(electrically erasable programmable read only memory, EEPROM), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(compact disc-ROM, CD-ROM), 디지털 다목적 디스크(digital versatile discs, DVDs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WAN(wide area network), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 무선 통신 시스템에서 기지국의 장치에 있어서,
    마스터 FPGA(field programmable gate array);
    상기 마스터 FPGA의 제어를 받는 복수의 슬레이브 FPGA들; 및
    상기 마스터 FPGA 및 상기 복수의 슬레이브 FPGA들과 연결된 어드레스 마스커를 포함하며,
    상기 어드레스 마스커는,
    상기 마스터 FPGA에 의하여 각각의 상기 복수의 슬레이브 FPGA들에게 할당된 서로 다른 어드레스 비트들을 수신하고,
    상기 서로 다른 어드레스 비트들에 대하여 특정 위치의 비트 값들을 동일한 값으로 마스킹하며,
    각각의 상기 복수의 슬레이브 FPGA들에게 대응하는 상기 마스킹된 어드레스 비트들을 송신하도록 구성된 장치.
  2. 청구항 1에 있어서,
    상기 서로 다른 어드레스 비트들은 상기 특정 위치의 비트 값들 외의 나머지 비트 값들이 서로 동일한 장치.
  3. 청구항 1에 있어서,
    상기 마스킹된 어드레스 비트들은 모든 비트 값들이 서로 동일한 장치.
  4. 청구항 1에 있어서,
    상기 마스킹된 어드레스 비트들은 상기 마스터 FPGA에 의하여 상기 복수의 슬레이브 FPGA들 중 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들과 모든 비트 값들이 서로 동일한 장치.
  5. 청구항 4에 있어서,
    메모리를 더 포함하며,
    상기 메모리는,
    상기 마스터 FPGA의 어드레스 비트들에 대한 설정 비트와 상기 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들에 대한 설정 비트를 저장하도록 구성된 장치.
  6. 청구항 5에 있어서,
    상기 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들에 대한 설정 비트는 상기 복수의 슬레이브 FPGA들 모두에게 대응되는 장치.
  7. 청구항 1에 있어서,
    상기 어드레스 마스커는,
    동일한 기능을 수행하는 복수의 슬레이브 FPGA들에게 동일 어드레스 비트들이 할당되고, 다른 기능을 수행하는 복수의 슬레이브 FPGA들에게 다른 어드레스 비트들이 할당되도록 마스킹을 수행하도록 더 구성된 장치.
  8. 청구항 7에 있어서,
    메모리를 더 포함하며,
    상기 메모리는,
    상기 마스터 FPGA의 어드레스 비트들에 대한 설정 비트와,
    상기 복수의 슬레이브 FPGA에 대하여 기능 별로 서로 다른 설정 비트를 저장하도록 구성된 장치.
  9. 청구항 1에 있어서,
    상기 어드레스 마스커는,
    상기 마스터 FPGA로부터 상기 복수의 슬레이브 FPGA들에 대하여 할당된 읽기 또는 쓰기 동작의 어드레스 비트들에 대응하여 상기 복수의 슬레이브 FPGA들로부터 수신된 확인 응답(Acknowledgement response)을 상기 마스터 FPGA에게 송신하도록 더 구성된 장치.
  10. 청구항 1에 있어서,
    상기 어드레스 마스커는,
    상기 마스터 FPGA로부터 상기 복수의 슬레이브 FPGA들에 대하여 할당된 읽기 또는 쓰기 동작의 어드레스 비트들에 대응하여 상기 복수의 슬레이브 FPGA들로부터 소정의 시간 동안 확인 응답이 수신되지 않는 경우, 확인 응답을 생성하고,
    상기 생성된 확인 응답을 상기 마스터 FPGA에게 송신하도록 더 구성된 장치.
  11. 무선 통신 시스템에서 기지국의 동작 방법에 있어서,
    상기 기지국은 마스터 FPGA(field programmable gate array), 상기 마스터 FPGA의 제어를 받는 복수의 슬레이브 FPGA들, 상기 마스터 FPGA 및 상기 복수의 슬레이브 FPGA들과 연결된 어드레스 마스커를 포함하며,
    상기 마스터 FPGA에 의하여 각각의 상기 복수의 슬레이브 FPGA들에게 할당된 서로 다른 어드레스 비트들을 상기 어드레스 마스커에 의하여 수신하는 과정과,
    상기 서로 다른 어드레스 비트들에 대하여 특정 위치의 비트 값들을 동일한 값으로 상기 어드레스 마스커에 의하여 마스킹하는 과정과,
    각각의 상기 복수의 슬레이브 FPGA들에게 대응하는 상기 마스킹된 어드레스 비트들을 상기 어드레스 마스커에 의하여 송신하는 과정을 포함하는 방법.
  12. 청구항 11에 있어서,
    상기 서로 다른 어드레스 비트들은 상기 특정 위치의 비트 값들 외의 나머지 비트 값들이 서로 동일한 방법.
  13. 청구항 11에 있어서,
    상기 마스킹된 어드레스 비트들은 모든 비트 값들이 서로 동일한 방법.
  14. 청구항 11에 있어서,
    상기 마스킹된 어드레스 비트들은 상기 마스터 FPGA에 의하여 상기 복수의 슬레이브 FPGA들 중 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들과 모든 비트 값들이 서로 동일한 방법.
  15. 청구항 14에 있어서,
    상기 기지국은 메모리를 더 포함하며,
    상기 메모리에 상기 마스터 FPGA의 어드레스 비트들에 대한 설정 비트와 상기 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들에 대한 설정 비트를 저장하는 과정을 더 포함하는 방법.
  16. 청구항 15에 있어서,
    상기 하나의 슬레이브 FPGA에게 할당된 어드레스 비트들에 대한 설정 비트는 상기 복수의 슬레이브 FPGA들 모두에게 대응되는 방법.
  17. 청구항 11에 있어서,
    동일한 기능을 수행하는 복수의 슬레이브 FPGA들에게 동일 어드레스 비트들이 할당되고, 다른 기능을 수행하는 복수의 슬레이브 FPGA들에게 다른 어드레스 비트들이 할당되도록 상기 어드레스 마스커에 의하여 마스킹을 수행하는 과정을 더 포함하는 방법.
  18. 청구항 17에 있어서,
    상기 기지국은 메모리를 더 포함하며,
    상기 메모리에 상기 마스터 FPGA의 어드레스 비트들에 대한 설정 비트와 상기 복수의 슬레이브 FPGA에 대하여 기능 별로 서로 다른 설정 비트를 저장하는 과정을 더 포함하는 방법.
  19. 청구항 11에 있어서,
    상기 마스터 FPGA로부터 상기 복수의 슬레이브 FPGA들에 대하여 할당된 읽기 또는 쓰기 동작의 어드레스 비트들에 대응하여 상기 복수의 슬레이브 FPGA들로부터 수신된 확인 응답(Acknowledgement response)을 상기 어드레스 마스커에 의하여 상기 마스터 FPGA에게 송신하는 과정을 더 포함하는 방법.
  20. 청구항 11에 있어서,
    상기 마스터 FPGA로부터 상기 복수의 슬레이브 FPGA들에 대하여 할당된 읽기 또는 쓰기 동작의 어드레스 비트들에 대응하여 상기 복수의 슬레이브 FPGA들로부터 소정의 시간 동안 확인 응답이 수신되지 않는 경우, 상기 어드레스 마스커에 의하여 확인 응답을 생성하는 과정과,
    상기 생성된 확인 응답을 상기 어드레스 마스커에 의하여 상기 마스터 FPGA에게 송신하는 과정을 더 포함하는 방법.
KR1020190105414A 2019-08-27 2019-08-27 무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법 KR20210025403A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190105414A KR20210025403A (ko) 2019-08-27 2019-08-27 무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법
EP20858686.7A EP4020242B1 (en) 2019-08-27 2020-06-02 Apparatus and method for operating multiple fpgas in wireless communication system
PCT/KR2020/007109 WO2021040196A1 (ko) 2019-08-27 2020-06-02 무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법
US17/638,778 US11818093B2 (en) 2019-08-27 2020-06-02 Apparatus and method for operating multiple FPGAS in wireless communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190105414A KR20210025403A (ko) 2019-08-27 2019-08-27 무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210025403A true KR20210025403A (ko) 2021-03-09

Family

ID=74685983

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190105414A KR20210025403A (ko) 2019-08-27 2019-08-27 무선 통신 시스템에서 다중 fpga를 운영하기 위한 장치 및 방법

Country Status (4)

Country Link
US (1) US11818093B2 (ko)
EP (1) EP4020242B1 (ko)
KR (1) KR20210025403A (ko)
WO (1) WO2021040196A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116931387A (zh) * 2023-07-26 2023-10-24 无锡物联网创新中心有限公司 一种面向阵列化数字光刻机的光机电控制系统
CN117453279B (zh) * 2023-12-26 2024-03-19 中国人民解放军国防科技大学 一种适用于太空强辐射环境下的星载设备硬件架构

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6535043B2 (en) * 2000-05-26 2003-03-18 Lattice Semiconductor Corp Clock signal selection system, method of generating a clock signal and programmable clock manager including same
US6662285B1 (en) 2001-01-09 2003-12-09 Xilinx, Inc. User configurable memory system having local and global memory blocks
US20020138156A1 (en) 2001-01-25 2002-09-26 Wong Isaac H. System of connecting multiple processors in cascade
US7076595B1 (en) 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
US6937061B1 (en) * 2003-12-30 2005-08-30 Altera Corporation Address decoder for programmable logic device
DE102007024737A1 (de) 2007-05-25 2008-11-27 Robert Bosch Gmbh Datenübertragungsverfahren zwischen Master- und Slave-Einrichtungen
JP5169486B2 (ja) 2008-05-26 2013-03-27 富士通株式会社 Fpgaコンフィグレーション装置及びこれを有する回路基板、電子装置、及びfpgaコンフィグレーション方法
US20110022907A1 (en) 2009-06-23 2011-01-27 StarDFX Technologies, Inc. FPGA Test Configuration Minimization
JP5609176B2 (ja) 2010-03-12 2014-10-22 富士通株式会社 コンフィグレーション方法及びコンフィグレーション制御回路
WO2012171582A1 (en) * 2011-06-17 2012-12-20 Telefonaktiebolaget L M Ericsson (Publ) Resolving address conflicts in a bus system
CN102306107A (zh) 2011-08-30 2012-01-04 四川和芯微电子股份有限公司 Fpga配置装置及配置方法
US20140068125A1 (en) 2012-08-30 2014-03-06 Lsi Corporation Memory throughput improvement using address interleaving
CN103744356B (zh) 2014-01-17 2016-08-17 重庆大学 一种基于dsp/fpga动态可配置的机床智能控制器及控制方法
US9904749B2 (en) 2014-02-13 2018-02-27 Synopsys, Inc. Configurable FPGA sockets
KR101711698B1 (ko) * 2014-05-26 2017-03-02 한국전자통신연구원 데이터 처리 방법, 및 데이터 처리 장치
JP2016004327A (ja) * 2014-06-13 2016-01-12 富士通株式会社 伝送装置
WO2016090599A1 (zh) 2014-12-11 2016-06-16 京微雅格(北京)科技有限公司 一种可扩展可配置的逻辑元件和fpga器件
US9401190B1 (en) 2015-04-13 2016-07-26 Altera Corporation High speed FPGA boot-up through concurrent multi-frame configuration scheme

Also Published As

Publication number Publication date
EP4020242A4 (en) 2022-10-26
WO2021040196A1 (ko) 2021-03-04
EP4020242A1 (en) 2022-06-29
US20220278956A1 (en) 2022-09-01
EP4020242B1 (en) 2023-05-31
US11818093B2 (en) 2023-11-14

Similar Documents

Publication Publication Date Title
EP3567900B1 (en) Method and indication method for measuring csi-rs, network device and terminal
US10893566B2 (en) Method for receiving beam recovery request and network device
JP7364004B2 (ja) チャネル状態情報の測定目的の指示方法、装置及び通信システム
EP3955678A1 (en) Data receiving and transmitting method and apparatus
KR20200060513A (ko) 무선 채널 상태를 나타내기 위한 시스템 및 방법
AU2019296415B2 (en) Data scrambling method and relevant device
WO2019096235A1 (zh) 接收参考信号的方法和发送参考信号的方法
CN110831020B (zh) 检测dci的方法、配置pdcch的方法和通信装置
WO2019100772A1 (zh) 一种无线通信方法及装置
EP3726767A1 (en) Data transmission method and device and communication apparatus
JP6953457B2 (ja) 信号伝送方法、ネットワーク機器、及び端末機器
US10873914B2 (en) Communication method and communications apparatus
US11284425B2 (en) Uplink signal transmission method and system, and base station
JP2020511020A (ja) 送信方法、ネットワークデバイス、及び端末デバイス
US11818093B2 (en) Apparatus and method for operating multiple FPGAS in wireless communication system
CN114868420A (zh) 与组信息相关联的用于测量和报告的方法
CN114710840A (zh) 通信方法和通信装置
WO2018201919A1 (zh) 一种数据传输的方法和装置
WO2019137299A1 (zh) 通信的方法和通信设备
JP7153066B2 (ja) チャネルの周波数ホッピングの決定方法及び装置、コンピュータ記憶媒体
CN111865542B (zh) 通信方法和通信装置
WO2021087895A1 (zh) 传输参数的确定方法及装置
KR20230121894A (ko) 빔 표시를 위해 특정 dci에 의해 harq-ack 프로시저를초기화하기 위한 시스템들 및 방법들
US20200288437A1 (en) Forbidden-Resource-Unit Indication for Coexisting Communication
CN114339875A (zh) 信息传输方法和通信装置

Legal Events

Date Code Title Description
A201 Request for examination