스마트폰 성능제한 기술은 어떤 의도를 가진 기술일까?
안녕하세요 변리사가 읽어주는 특허이야기 특허개미입니다.
요즘 온라인 커뮤니티와 유튜브를 떠들썩하게 하는 이슈가 있습니다. 바로 삼성 갤럭시 스마트폰의 GOS 이슈인데요. GOS는 Game Optimizing Service라는 어플로 게임 등과 같은 어플리케이션의 실행 중에 발열, 배터리 소모 최적화 등을 위해서 AP의 성능을 제한하는 갤럭시 스마트폰의 기본 앱입니다. 여기서 문제는 GOS가 성능을 제한하는 정도가 게임을 제대로 즐기지 못할 만큼 크면서도 일반적으로 게임보다 부하가 더 크지만 성능의 지표로 사용되는 벤치마크 앱에서는 성능 제한이 해제되어 실제 게임에서 발휘할 수 있는 성능 보다 부풀려진 결과를 보이도록 하는 것입니다. 즉, 벤치마크 점수는 높지만 실제 게임에서는 GOS때문에 그 성능을 발휘를 못하는 것이죠.
그렇지만 문제가 더 커졌습니다. GOS는 사용자가 끌 수도 없을 뿐 더러 게임만 성능제한을 하고 있었던게 아닌것이 밝혀 진 것이죠. 즉, 게임이 아닌 다른 앱들도 GOS가 개입하여 성능을 제한하는 것이 드러났습니다. 그리고 벤치마크 앱의 이름을 게임으로 바꾸면 GOS가 개입하여 성능을 제한하는 것으로 드러나 의도적으로 벤치마크만 성능 제한에서 벗어나게 하여 성능이 높아 보이게 하는 눈속임을 한 것이 아니냐는 의견이 나오게 된 것입니다. 우리 같은 소비자들은 벤치마크 점수만 보고 성능을 판단하기 때문에 실사용 성능은 좋지 않지만 벤치마크 점수는 높은 원효대사 스마트폰을 쓰게 되는 것입니다.
고깃집에서 1인분 200g을 주문했는데 저울에는 200g으로 표시되지만 실제로는 120g인 것과 동일한 것 아니냐는 거죠. 분명 내 배꼽 저울은 120g이라는데 저울에만 올리면 200g이 나오는 것이죠. 그래서 1인분이라는 글자를 가리고 저울에 올렸더니 120g나오는 것과 같은 그런 느낌입니다.
정리를 해 보자면 GOS라는 게임시 발열, 배터리 소모 최적화를 위한 앱이 있고, 이 앱이 최적화 정도를 넘어서 쿨링 솔루션이 빈약한 스마트폰의 과열을 막는다는 명분으로 성능을 제한하고 있으며, 더 큰 문제는 모든 리소스를 풀로드하여 더 높은 발열과 배터리를 소모하는 벤치마크에서는 성능제한을 하지 않기 때문에 이것은 기만이 아닌가 하는 것입니다.
자 그럼, GOS와 같은 발열관리, 배터리 관리 등을 위해 성능을 제한을 하는 기술이 특허로 나와 있는지 한번 살펴보겠습니다.
GOS는 기기 상태를 모니터링해서 프로세서의 성능을 제한하는 개념입니다.
자세히 살펴보면 해당 기술은 제한되는 성능 요소들과 성능을 제한하기 위한 조건으로 구성될 수 있습니다. 다시 말하면, 성능 제한을 위하여 프로세서의 소모전력, 동작속도, 클럭 등이 제한되는 성능 요소일 수 있으며 성능 제한을 위한 조건으로 발열, 베터리 잔량, 자원 사용량(앱 종류? 배터리 사용량!)등이 포함될 수 있습니다.
그래서, 제한되는 성능 요소들 그리고 성능을 제한하기 위한 조건들에 대한 키워드를 모두 포함하도록 (제한되는 성능 요소들) and (성능을 제한하기 위한 조건)으로 검색어를 구성하였고 출원인은 삼성전자로 한정하였습니다. 완벽한 검색어라 할 순 없지만 아래와 같은 검색어로 검색하였고 한국 기준 520 건이 검색되었습니다.
((부하율 or 온도 or 발열 or 자원 or 전송률 or 부하 or 로드 or 상태 or 소모량 or 사용량) and (클럭 or 속도 or 전력) and (제한 or 절약 or 저전력)) AND (삼성전자).AP.
대부분은 무선 통신에서 전력 관리를 위한 것들이었지만 몇 건의 눈에 띄는 것들이 있었습니다.
이하에서 눈에 띄는 몇 건의 특허들을 살펴보겠지만 주의해야 할 것은 저는 삼성전자의 모든 특허를 다 검토한 것은 아니기 때문에 여기에 빠진 것들이 있을 수 있다는 것, 그리고 많은 기업의 사례에서 보유하고 있는 특허가 모두 제품에 적용되는 것은 아니라는 점입니다. 즉, 특허가 있다고 하여 그 내용으로 기술이 구성된다고 단정지을 수는 없다는 것입니다. 여러분들도 연말에 실적 모자랄 때 온갖 아이디어를 다 내 본적 있으시잖아요?
그리고 살펴본 특허들은 제가 덜 봐서 그럴 수 있지만 GOS 자체에 대한 것은 아니고 해석에 따라서 관련성이 있을 수도 있다 정도 혹은 상황에 따른 성능 제한의 개념을 담고 있다 정도로 보시면 될 것 같습니다. 자원 사용량을 최적화 하겠다는 기술 컨셉 자체가 나쁜 것은 아니니까요.
삼성전자에서 2011년에 출원한 특허입니다.
요약에서 몇 가지 눈에 띄는 것이 보입니다.
어플리케이션 실행에 따른 시스템 부하를 측정하고 부하가 시스템 제한을 초과하면 제한된 클럭으로 어플리케이션을 실행하여, 배터리의 전류소모를 절약하는 것에 관련한 특허입니다.
하지만, 자세히 보시면 전원 절약 모드에서 동작하는 것을 알 수 있습니다. 즉, 전원 절약 모드에서 너무 과한 시스템 부하를 주는 앱이 동작하는 경우에 전원이 절약되도록 클럭을 제한하여 실행되도록 제어하는 것이라 보시면 됩니다.
이제 상세한 내용을 좀 살펴보죠.
특허는 이렇게 전체 요약을 보여주는 1페이지의 표지와 그 뒤의 권리에 관련한 내용 그리고 기술의 공개 문서에 해당하는 상세한 설명으로 구성됩니다.
이 기술은 성능을 제한하여 배터리의 소모전류를 줄이기 위한 기술입니다.
그러기 위해서, 불편함이 없는 수준으로 성능을 제한하여 배터리를 오래 쓸 수 있도록 해 줍니다.
더 살펴보면, 여기서 제한되는 것은 AP의 시스템 클럭 그리고 디스플레이의 주사율입니다.
자 그럼 이 특허는 어떤 권리범위를 가지고 있는지 살펴보죠.
자 보시면, 전원 절약 모드에서는 정상 동작 모드보다 낮은 시스템 클럭을 가지는 제한 시스템 클럭으로 동작하게 됩니다.
이때, 어플리케이션 실행 시 시스템 부하가 전원 절약 모드의 제한을 초과하는 경우에는 제한 시스템 클럭으로 동작하게 됩니다.
그리고 이 제한 시스템 클럭은 특정 시간 동안 최대 시스템 클럭의 발생 횟수를 카운트해서, 최대 시스템 클럭의 발생 횟수가 일정 이상인 경우 그 횟수에 매칭된 클럭으로 결정되게 됩니다.
즉, 전원 절약 모드에서 어플리케이션 실행 시에 동작 속도는 제한 시스템 클럭을 최대치로 제한됩니다. 그리고 제한 시스템 클럭은 일정 시간 동안 최대 시스템 클럭을 요구한 횟수에 따라 설정됩니다. 즉, 휴대폰이 최대 시스템 클럭을 많이 요구한 경우에는 낮게 설정이 될 수 있겠죠.
이런 기술에서 가장 중요한 것은 “어떤 상황”에서 “얼마나 제한”하나입니다. 이 특허는 “배터리 관리가 필요한 상황”에서 “사용성에 불편함이 없는 수준의 제한”을 제시하고 있으며 사용성에 불편함이 없는 수준은 실험적으로 얻어진 수치임을 제시하고 있습니다.
이 특허는 삼성전자에서 2014년 출원한 특허입니다.
이 특허는 전자장치의 상태와 소프트웨어 특성에 적합한 실행 방법에 관한 것임을 기재하고 있습니다.
먼저 뭘 하려는 기술인지부터 살펴보죠.
기존의 디바이스 제어 방법은 모든 소프트웨어에 대해서 최대의 리소스를 사용하도록 개발되었지만 일부 소프트웨어들은 최대의 리소스로 구동될 필요가 없다는 상황을 제시하고 있습니다. 불필요하게 최대 성능으로 구동되게 되면 발열, 배터리 소모가 증가하는 문제가 있고, 이를 해결할 필요가 있다고 기재하고 있습니다.
그래서, 소프트웨어 특성에 맞춰 성능 제한을 두어 배터리 소모도 줄이고 발열도 줄이기 위한 기술을 개발했습니다.
자 그럼 어떻게 동작하는지 자세히 살펴보죠
이 특허의 모식도입니다. 여기서, 부하율 제한 사용자 레벨 제 1 응용 프로그램은 부하율 제한이 있는 프로그램들입니다. 그리고 사용자 레벨 제 M 응용 프로그램은 부하율 제한이 없는 프로그램들입니다. 부하율 제한이 있는 프로그램들은 프로세서를 100% 쓰는 것이 아니라 미리 설정된 값으로 제한하여 사용하는 프로그램을 의미합니다.
그리고 각각의 프로그램(앱)들은 1~4연산부에서 연산될 수 있습니다. (다중 코어 시스템)
여기서 프로그램 별 부하율 제한 값은 프로그램 별로 결정되거나 전자장치에서 자체적으로 설정될 수 있습니다. 즉, 앱에서 미리 값을 지정하거나 아니면 디바이스에서 자체적으로 지정하는 것입니다.
그리고 부하율 제한 값은 장치의 상태에 따라서 다르게 설정될 수도 있습니다. (아래 문단에서 수치들은 모두 예시)
즉, 프로그램이 실행되면 프로그램으로부터 부하율 제한 정보를 수신하여, 제한된 성능으로 프로그램을 구동하거나, 프로그램으로부터 이를 수신하지 못하면(즉, 프로그램에 성능 제한 설정이 없는 경우), 단말의 상태에 따라서 제한된 성능으로 프로그램을 구동할 수 있습니다.
요약하자면 이 특허에서 말하고자 하는 바는 특정 앱들은 앱에 설정된 제한값 또는 단말의 상태에 따라서 제한된 성능으로 구동할 수 있습니다. 여기서 말하는 “특정 앱”은 최대 성능이 필요하지 않은 앱들이며 성능 제한의 이유는 발열 관리 및 배터리 관리를 위함입니다.
자 그럼 이 특허는 어떤 권리범위를 가지는지 보죠.
연산 처리부는 프로세서(AP)의 각각의 코어입니다.
장치 매니저는 프로세서의 연산 처리 속도를 제어합니다.
서비스 품질 매니저가 이 발명에서 말하는 성능 제한을 위한 구성입니다.
서비스 품질 매니저는 앱으로부터 성능 제한 정보를 수신하고, 상태에 따라서 성능 제한의 정도를 설정합니다. 그리고, 제한된 성능으로 코어들이 연산할 수 있도록 연산 파라미터(코어 동작속도, 메모리 로드 속도 등)를 설정하고, 이를 스케줄러에 전달하여 스케줄러가 각 코어에 작업을 분배하도록 합니다.
그리고 성능 제한 정도는 단말의 상태에 따라서 다르게 적용될 수 있습니다.
이 특허에서는 “최대 성능이 필요치 않은 앱”에 대하여 성능 제한을 걸며, 성능 제한의 정도는 “단말 상태(동작 모드)”에 따라서 결정됩니다. 이 특허 역시 “사용자 경험을 헤치지 않는 선에서” “필요에 따른” 성능제어 동작을 하는 것이 key point입니다.
이 특허는 삼성전자에서 2014년에 출원한 특허입니다.
하지만 앞선 두 특허에 비해서는 조금 더 구체적이고 마이너한 내용을 담고 있습니다.
이 특허 역시 다른 두 특허와 동일합니다. “최대 성능이 필요하지 않은 순간”에 “최대성능을 내지 않도록”하는 것이 핵심이며 사용자가 text 입력을 하고 있는 경우 “최대 성능이 필요 없는 순간”이라 판단하고 성능을 제한하는 것이 이 특허의 내용입니다.
구체적으로 보죠.
이 특허의 배경기술(기존의 문제점과 해결하고자 하는 방향을 제시하는 부분)에서는 텍스트 입력 시 높은 성능이 필요치 않으므로 이 때, 전력을 효율적으로 관리하는 방법이 필요함을 개시하고 있습니다.
이 특허는 입력 속도에 따라서 제어 정보를 설정하여 전력 효율을 증가시킬 수 있음을 주장하고 있습니다.
아래 도면을 보시면 이 특허를 쉽게 이해하실 수 있습니다.
사용자가 text를 입력 시 사용자의 입력 속도를 수집할 수 있습니다. 소요된 시간과 입력된 캐릭터 수를 통해 사용자의 입력 속도가 결정됩니다.
그러면 이렇게 사용자의 입력 속도에 따라서 성능 제어를 수행합니다.
이렇게 말이죠. 초당 3타수를 입력하는 경우에는 고성능이 필요 없으니 Little 프로세서로 동작함을 알 수 있습니다.
전체 과정을 보면 이렇습니다. 눈에 띄는 것이 보이네요. 제어 가능한 어플리케이션인지 먼저 체크하는 단계 가 있습니다.
제어 가능한 어플리케이션인지 체크하는 부분에 대해서 좀더 살펴보면 아래와 같습니다.
즉, 단말은 성능 제어가 가능한 어플리케이션의 목록을 저장하고 있고, 이 목록과 현재 사용중인 어플리케이션을 비교하여, 현재 사용 중인 어플리케이션이 성능 제한이 가능한 어플리케이션인지 판단할 수 있습니다.
물론 “텍스트 입력이 활성화되면” 동작하기 때문에 이 발명의 목적은 어디까지나 “최대 성능이 필요 없는 순간”에 “최대성능을 내지 않도록”하는 것입니다.
자 그럼 이 특허의 권리범위를 살펴보죠.
사용자 입력을 감지하면, 입력 속도를 예측하고, 입력 속도별로 결정된 성능 제한을 AP에 적용하게 됩니다.
그리고 제한되는 성능은 AP의 클럭, 전압, 버스 클럭, 스위치 타입(Big-Little 구조에서 어느 프로세서를 사용할지 여부)입니다.
그리고 활성화되는 AP의 코어는 성능 제한과 배터리 잔여량에 기초하여 결정됩니다.
이 특허에서는 “최대 성능이 필요치 않은 앱(그 중 text 입력)”에 대해서 성능 제한을 걸며 성능 제한의 정도는 사용자의 입력 속도에 따라서 결정됩니다. 이 특허 역시 “사용자 경험을 헤치지 않는 선에서” “필요에 따른” 성능제어 동작을 하는 것이 key point입니다.
위 3건의 특허는 모두 “최대 성능이 필요 하지 않은 순간(앱)”에 불필요한 “최대 성능 동작을 제한”하여 사용자 경험을 해치지 않으면서도 발열과 배터리를 관리하는 것과 관련한 특허들입니다.
그리고 각각 “단말의 상태 모니터링”, “앱 종류”, “앱 종류 및 입력 속도”에 기초하여 성능 제한의 여부를 결정합니다.
2011년에서 2014년까지 3 건의 특허를 통해 기술의 발전을 간략히 살펴보면 아래와 같습니다.
즉, 제한 조건이 점점 더 구체화되고 제한되는 성능이 보다 구체화됩니다.
일반적으로 특허는 기술로 개발되기 전의 아이디어도 보호하기 때문에 특허가 있다 = 기술이 있다는 의미는 아닙니다. (연말 실적 밀어내기를 생각하시면 이해하기 쉬워요) 그러나, 기술 내용이 조금씩 구체화되는 여러 특허가 있다면 “기술이 있지 않을까?”라고 볼 확률이 조금 더 올라갑니다.
위 3가지 특허로 GOS에 대한 특허 분석이 완료되었다고 보기는 힘듭니다. 분명 찾아지지 않은 것들이 있을 것이에요. (삼성전자가 한국에 출원한 특허는 20만건이 넘습니다.) 위 3가지 특허는 그냥 성능제한 기술의 목적과 효과에 대한 예시라고 보시는 것이 적절합니다.
이번 GOS이슈는 벤치마크 치팅이라는 평가를 받아 실망감을 안겨주고 있습니다. 특히 이번 S22에 대해서는 발열을 잡았다고 선언하며 출시했기에 많은 분들이 더 큰 실망감을 느꼈을 것이라 생각합니다. 그렇지만, 특허에서 살펴보았듯 불필요한 고성능 동작을 제한함으로써 배터리리와 발열을 관리하는 기술은 필요할 수 있습니다.
이대로 끝내긴 아쉬우니 발열관리 기술 관련 특허를 하나 더 보죠. 삼성전자가 국민주식(=내주식)이 된 마당에 “성능제한만으로 발열을 잡았습니다”하고 끝낼 수는 없으니까요. 그래도 우리가 신뢰를 가지고 써왔던 삼성이 마냥 쉬운 길만 가려 했을까? 한번 살펴 보죠.
이건 삼성전자에서 2013년도에 출원한 특허입니다. 보시면, 출원일자는 2020.06.08인데 왜 2013년이냐고요? 이 특허는 “분할출원”이라고, 부모 특허가 있고 이 부모 특허의 내용 일부를 따로 떼서 출원한 자식 출원입니다. 즉, 이 특허는 2020년에 특허청에 제출되었지만 기초가 되는 발명은 2013년도 것입니다(그사이 새로운 발명이 있어도 분할출원에는 추가할 수 없습니다).
아무튼, 13년도에 출원한 내용에 기초하여 20년도에 재출원된 것이므로(새로운 내용이 추가될 수 없기 때문에) 13년에 한 발명이다 그렇게 보시면 대강 의미가 맞습니다.
자 그럼 이 특허도 배경부터 살펴보죠.
고성능 코어와 저전력 코어를 하나의 칩에 구현하는 이제는 너무나 일반화되어서 CPU에도 적용되고 있는 Big-Little 구조입니다.
이 특허는 멀티코어 프로세서에서 온도 관리를 수행하기 위한 기술입니다.
멀티 코어 프로세서에서 온도에 따라서 코어 스위칭을 통해 물리적으로 다른 코어를 사용하여 온도 관리를 할 수 있다고 개시하고 있습니다.
도면으로 살펴보죠.
이 특허의 핵심 개념은 바로 이 도면입니다.
보시면 Little Cluster(파랑)와 Big Cluster(초록)구성된 것을 볼 수 있습니다. 각각 4코어를 가지고 있는 8코어 시스템이네요(물론 코어 수는 예시입니다. 특허문헌에 기재된 구체적인 숫자는 일반적으로 전부 예시라고 보시면되요).
진한 회색으로 도시된 빅코어가 모두 활성화된 코어입니다. 그리고 여기서 코어 스위칭이 일어난 후에는 빅코어1이 비활성화, 리틀코어 1이 활성화된 것을 볼 수 있습니다. 즉, 빅코어의 작업을 리틀코어로 옮겨 주는 방식입니다.
어떤 경우에 이렇게 동작하는지는 다음 그림으로 보죠.
자 보시면, 1 타입 코어(빅코어)의 온도가 기준 이상인지 판단합니다. 빅코어의 온도가 일정 기준 이상인 경우 해당 빅코어에 할당된 잡을 리틀 코어(제 2 타입 코어)로 이동시킵니다(즉, 빅코어는 이제 놉니다). 그리고 빅코어를 클락게이팅 또는 파워게이팅 하여 더 적극적으로 식힙니다.
그리고 빅코어의 온도가 일정 기준 이하로 내려갈 경우에 다시 리틀코어로 할당되었던 잡을 이 빅코어에 할당합니다.
즉, 특정 빅코어가 뜨겁다 -> 잠시 쉬게 해서 식히고 -> 작업은 리틀코어가 수행 -> 식으면 다시 빅코어에서 작업 수행하는 것입니다.
이렇게 되면 빅코어가 계속 정상온도로 동작 하는 것 보다는 느리겠지만 빅코어가 작업을 하지 않을 때 리틀 코어가 작업을 하기 때문에 빅코어가 아무것도 하지 않는 경우보다는 성능 하락이 줄어들게 됩니다.
즉, 앞서 본 특허들과 같이 “필요한 경우(발열)에 성능이 제한”되지만 “사용자 경험에 영향을 최소화”하기 위한 목적을 위한 기술임을 알 수 있습니다.
자 그럼 이 특허의 권리범위를 살펴보죠.
큰 틀은 아까 도면으로 살펴본 것과 동일합니다. 빅 리틀 구조를 가지는 멀티 코어 프로세서에서 특정 코어의 온도가 제 1 기준 보다 높아지면 그 코어에 할당된 작업을 리틀 코어로 스위칭 하여 온도를 제어합니다. 그리고 그 특정 코어의 온도가 제 1 기준 보다 높은 제 2 기준보다도 높아지면 해당 코어와 인접 코어의 작업을 리틀 코어로 스위칭 합니다.
즉, 뜨거워진 코어의 작업을 빼서 쉬게 해주는데 그래도 너무 뜨겁다면 옆에 있는 코어도 같이 쉬게 해준다는 것입니다.
이 특허는 단순한 성능제한을 통한 온도 제어가 아니라 사용자가 알 수 없는 레벨에서의 장치 제어를 통해 발열 등에 의한 “유저 경험에 대한 영향을 최소화”하기 위한 것입니다.
그래서 발열 관리에 관한 삼성전자의 특허 중 아주 일부를 살펴봤습니다.
이중엔 요즘 이슈가 되는 GOS와 유사한 동작 방식을 가지는 특허들(KR10-2270239, KR10-2309035)도 있었습니다.
이번 GOS이슈는 벤치마크 치팅에 관련한 부분이 널리 퍼져 많은 갤럭시s시리즈의 사용자들에게 실망감을 안겨준 것 같습니다.
하지만, 특허를 살펴보면 이 기술의 목적들은 모두 제한된 리소스에서 “유저 경험에 대한 영향을 최소화”임을 알 수 있습니다. 저는 이번은 삼성전자가 우리에게 실망감을 안겨줬지만 그래도 삼성의 기술은 유저를 향한다고 믿고 싶습니다(앞으로라도…).
국민주식, 국민기업이 된 삼성전자가 과거 애니콜, 노트7의 사례와 같이 다시 유저의 신뢰를 되찾길 바래봅니다.
삼성전자가 문제를 해결하는것 처럼 보이는 쉬운 길이 아닌 문제를 진짜 해결하는 어려운 길로 가길 바래봅니다.
ㅠㅠ;;
저자 소개: 이호준 변리사는 샤오미, 바이두 등 국내외 유명 대기업, 뷰노 등 AI스타트업의 사건을 처리한 경험을 가지고 있습니다. 이호준 변리사는 빅뱅벤처스의 이사로 인공지능과 관련한 기업들의 투자 심사를 수행하고 있습니다. 업무 문의는 hjlee@abcip.co.kr 로 부탁드립니다.