서지주요정보
Address translation for user-level communication in SMP clusters = SMP 클러스터상에서 사용자 수준 통신을 위한 주소 변환에 관한 연구
서명 / 저자 Address translation for user-level communication in SMP clusters = SMP 클러스터상에서 사용자 수준 통신을 위한 주소 변환에 관한 연구 / Moon-Sang Lee.
저자명 Lee, Moon-Sang ; 이문상
발행사항 [대전 : 한국과학기술원, 2006].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8017099

소장위치/청구기호

학술문화관(문화관) 보존서고

DCS 06006

SMS전송

도서상태

이용가능

대출가능

반납예정일

초록정보

User-level communication alleviates the software overhead of the communication subsystem by allowing applications to access the network interface directly. In user-level communication, a user process accesses a network interface using its own virtual address which should be translated to a physical address. A small caching structure which is similar to the TLB on the host processor has been used to cache the mappings between virtual and physical addresses on network interface memory. If a miss occurs in the caching structure, a network interface needs to retrieve a matching physical address from the host memory. To reduce the conflicts on the shared pages, existing techniques in processor cache design have been used. The caching structure on a network interface is generally managed by firmware software. In the case of a software managed cache, the cost of a lookup is increasing linearly with the degree of associativity since it can search only one cache entry at a time, and cache management for replacement becomes more complex and adds extra cost even for the case of a cache hit. Therefore, it is necessary to keep the translating mechanism as simple as possible while sustaining the high hit ratio to perform the address translation efficiently. In this thesis, we propose a new TLB architecture on the network interface. To exploit the spatial locality of application process and resolve the conflicts on the shared pages, the proposed architecture splits an original caching structure into as many partitions as the number of processors on the SMP system and assigns a separate partition to each of concurrent application processes. In addition, the architecture becomes aware of user contexts and switches the content of the caching structure according to the current user context. By resolving the conflicts from different user contexts, the proposed architecture can fully utilize the spatial and the temporal locality of application process. In this thesis, we also propose an alternative address translation scheme where every translation is done by the kernel instead of the caching structure on the network interface. The proposed scheme defeats the purpose of user-level communication by using a system call for every data transfer and adds some latency to every message, but it eliminates the delay incurred by misses on the caching structure since the kernel provides the network interface with all physical addresses for data transfer. For the evaluation, we have implemented a communication subsystem and applied the proposed schemes. We run both the micro and the real-workload bench-marks measuring the total execution time, and the traces from running benchmarks are used to analyze the experimental results. According to our experiments, our schemes achieve up to 21 % reduction in application execution time compared to the previous approach.

클러스터 시스템은 저가의 개인용 컴퓨터를 고속의 네트웍으로 연결하여 고성능 병렬 컴퓨터를 구현하는 한가지 방법으로, 네트웍으로 연결된 컴퓨터들의 연산 능력의 합은 저가의 고성능 컴퓨터를 가능하게 한다. 하지만, TCP/IP와 같이 원거리망(WAN)을 대상으로 설계된 기존의 통신 프로토콜이 컴퓨터간 통신에 사용됨으로써 기대했던 성능을 실현하지 못하는 문제점을 갖고 있다. 이를 해결하기 위해 제안된 사용자 수준 통신은 사용자 프로세스가 직접 네트웍 인터페이스를 접근하게 함으로써 커널의 간섭을 배제한다. 사용자 프로세스는 물리적 주소에 대한 접근 권한이 없기 때문에 자기 자신의 가상 주소를 사용하여 네트웍 인터페이스를 접근하는데 반해, 네트웍 인터페이스는 직접 메모리 접근(DMA)을 사용하여 데이타를 전송하기 때문에 사용자 버퍼에 대한 물리적 주소를 필요로 한다. 대부분의 기존 연구들은 네트웍 인터페이스 메모리에 자주 사용되는 주소 변환 정보를 캐슁해두는 방식을 통해 네트웍 인터페이스의 메모리 용량 문제와 주메모리의 긴 지연 시간 문제를 해결하고 있다. 주소 변환 정보를 캐슁해두는 변환 참조 버퍼(TLB)는 다수의 사용자 프로세스가 공유하는 구조체이다. 독립적인 주소 공간을 사용하는 다수의 사용자 프로세스는 서로간의 간섭에 의한 충돌 미스(conflict miss)를 발생시키기 때문에 변환 참조 버퍼의 히트율을 떨어뜨리고, 통신 시스템의 성능을 저하시킨다. 프로세서 캐쉬에서 충돌 미스를 줄이기 위한 연관 캐쉬(associativity cache)가 변환 참조 버퍼의 히트율을 높이는데 사용될 수 있지만, 네트웍 인터페이스의 펌웨어에 의해 관리되는 변환 참조 버퍼는 연관성이 높아질수록 검사(lookup) 시간이 선형적으로 증가한다는 문제점이 존재한다. 대칭형 멀티프로세서(SMP)에서는 서로 다른 주소 공간을 가지는 사용자 프로세스들의 동시다발적 변환 참조 버퍼 접근이 발생하고, 이로 인한 간섭은 충돌 미스를 증가시킨다. 또한, 시분할 시스템에서는 다수의 프로세스가 상호 배치 수행되기 때문에 한 프로세스가 채워놓은 변환 참조 버퍼의 유용한 정보를 그 다음 프로세스가 파괴하는 상호 간섭으로 인해 충돌 미스가 빈번하게 발생한다. 본 논문에서는 사용자 프로세스의 문맥을 인식하여 서로 다른 프로세스간의 간섭을 최소화시키는 문맥 인지 변환 참조 버퍼를 제안한다. 먼저, 공유되던 변환 참조 버퍼를 프로세서 개수만큼 분할하고, 동시에 수행중인 프로세스별로 각각 다른 분할 구역에 할당함으로써 동시다발적 변환 참조 버퍼 접근으로 인한 충돌 미스를 감소시킨다. 그리고, 상호 배치 수행되는 프로세스들이 동일한 분할 구역에서 충돌하는 것을 감소시키기 위해 서로 다른 문맥간의 충돌 미스가 발생할 경우 변환 참조 버퍼에 채워진 주소 변환 정보를 커널이 관리하는 주메모리에 저장하고, 필요할때 복원하는 방식을 적용한다. 이러한 문맥 인지 변환 참조 버퍼는 짧은 검사 시간을 유지하면서도 서로 다른 문맥간의 충돌 미스를 줄일 수 있는 효과적인 방안이다. 사용자 수준 통신은 데이타 전송시 커널의 간섭을 배제함으로써 시스템 콜, 데이타 복사, 그리고 문맥 교환을 제거할 수 있었다. 하지만, 사용자 프로세스가 직접 네트웍 인터페이스를 접근하게 됨으로써 네트웍 인터페이스 상에서 주소 변환이 필요하게 되었고, 변환 참조 버퍼 검사 실패시 긴 지연 시간을 야기하는 문제점이 존재한다. 만약, 데이터 전송시 시스템 콜을 통해 커널이 모든 물리적 주소를 네트웍 인터페이스에게 알려줄 수 있다면 변환 참조 버퍼 검사 실패로 인한 긴 지연 시간을 제거할 수 있다. 본 논문에서는 커널이 직접 주소 변환을 수행한 후 네트웍 인터페이스에게 물리적 주소를 알려줌으로써 네트웍 인터페이스상에서 주소 변환 과정을 제거하는 시스템 콜 기반 주소 변환 방법을 제안한다. 제안된 방법은 고속의 호스트 프로세서를 사용하기 때문에 느린 네트웍 인터페이스를 사용하는 경우보다 주소 검사 시간을 단축할 수 있다. 또한, 주소 변환에 필요한 모든 정보를 가진 커널이 필요한 모든 물리적 주소를 네트웍 인터페이스에게 알려주기 때문에 변환 참조 버퍼 검사 및 검사 실패에 대한 지연 시간을 제거할 수 있다. 본 논문에서는 제안된 주소 변환 방법의 평가를 위해 사용자 수준 통신의 업계 표준으로 정해진 가상 인터페이스 구조(VIA)를 리눅스 클러스터 상에서 구현하고, 다양한 주소 변환 방법과 함께 실제 응용 프로그램을 구동하는 실험을 수행하였다. 제안된 문맥 인지 변환 참조 버퍼는 대칭형 멀티프로세서에서 뿐만 아니라 시분할 환경하에서도 효과적으로 충돌 미스를 감소시켰으며, 4가지 응용 프로그램 모두에서 기존 주소 변환 방법보다 단축된 수행 시간을 보여줌을 확인하였다. 또한, 변환 참조 버퍼의 검사 실패율이 높을 경우, 시스템 콜을 통해 커널이 직접 주소 변환을 수행하는 것이 변환 참조 버퍼를 사용하는 경우보다 응용 프로그램 수행 시간을 단축시키는데 효과적임을 확인하였다.

서지기타정보

서지기타정보
청구기호 {DCS 06006
형태사항 viii, 64 p. : 삽도 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 이문상
지도교수의 영문표기 : Seung-Ryoul Maeng
지도교수의 한글표기 : 맹승렬
수록잡지명 : "Adopting system call based address translation into user-level communication". IEEE computer architecture letters, v.4, (2005)
학위논문 학위논문(박사) - 한국과학기술원 : 전산학전공,
서지주기 Reference : p. 59-64
주제 Cluster System
User-Level Communication
Address Translation
TLB
클러스터 시스템
사용자 수준 통신
주소 변환
변환 참조 버퍼
QR CODE qr code