LXF117:Китайская диковинка

Материал из Linuxformat.

Перейти к: навигация, поиск

Содержание

Компьютер для Китая

Рынок наводнен китайской электроникой, как очень дешевой, так и сверх-элитарной – Антон Борисов нашел среди нее ту, что нельзя приобрести на обычной распродаже.

Так выглядит Lemote MiniPC со снятой лицевой панелью.

Помните, как пять-шесть лет назад во всех СМИ мелькала информация о том, что Китай произвел собственный процессор, приближающийся по своим характеристикам к Intel Pentium II?

В то время это было не так уж плохо: отставание от лидера индустрии составляло всего пятилетку. Затем сообщения сошли на нет, и осталось непонятно, почему о «китайском чуде» больше ничего не слышно. На самом деле ситуация оказалась куда интереснее, чем можно было узнать из выпусков новостей.

Во-первых, исследования в области конструирования микропроцессоров не прекращались: Академия Наук КНР занимается ими и по сей день. Во-вторых, эквивалентность продукции Intel действительно присутствует, но только наполовину: китайские чипы имеют архитектуру MIPS. И в-третьих, как выяснилось, производитель заинтересован прежде всего в национальном рынке – вот почему этот CPU едва ли встретишь за Великой китайской стеной. К счастью, нам удалось заполучить его, а точнее – мини-ПК на основе микропроцессора Loongson2F, в свое распоряжение. Давайте познакомимся с ним поближе и дадим ответ на главный вопрос: а при чем тут, собственно, Linux?

Загрузка

Если вы уже сталкивались с архитектурами, отличными от x86, то наверняка знаете, что для загрузки ОС на них необходима корректно настроенная «прошивка» (firmware) – аналог BIOS Setup в IBM-совместимых ПК. В отличие от BIOS Setup, прошивка не обладает внешней красотой и предоставляет обычный интерфейс командной строки. Как правило, для настройки параметров загрузки хватает и обычной клавиатуры, но также существует возможность подключиться по COM-порту. К счастью, Lemote MiniPC поставляется с настроенной прошивкой, и никакие дополнительные действия не нужны. В некоторых отечественных MIPS-системах используется прошивка под названием PRIME; в данном случае мы имеем дело с разработкой шведской компании Opsycon AB – PMON 2000. Среди ее интересных свойств – загрузка с сетевых, Flash- и дисковых накопителей, поддержка FAT32, а также встроенный TFTP-сервер – красота, да и только. Плюс к этому – лицензия BSD, дающая возможность изучать и дорабатывать исходные тексты, сколько душе угодно.

Как выглядит запуск ОС в данном случае? PMON 2000 считывает параметры загрузки из Flash-памяти компьютера (это аналог CMOS) и определяет, с чего загружаться: с диска, с COM-порта или с сетевого устройства. Упор в MiniPC сделан на потребительский рынок, поэтому старт происходит с внутреннего жесткого диска, и управление передается Grub на разделе ext2. Он предоставляет три режима загрузки – обычный, Rescue (запуск ядра с минимальным набором POSIX-утилит) и Recover (восстановление ОС из специальной системной области). Наш MiniPC новый, сломать в нем мы ничего не успели, поэтому будем рассматривать первый вариант.

Как он устроен?

Наверное, автора уже не раз мысленно упрекнули за то, что он умолчал, какая ОС идет в комплекте с MiniPC. Приносим извинения за ажиотаж: конечно же, это Linux, точнее, Debian для платформы MIPS. А если уж быть до конца точным, то это Rays – его местная производная.

Для выбора Debian в качестве основы было несколько причин: отсутствие какого-либо «центра притяжения», то есть компании или организации, владеющей правами на дистрибутив. Стабильная работа Debian на MIPS обеспечивается с середины 2006 года. И что еще немаловажно, в конце 2006 года Lemote пошла на неординарный шаг: разослала 1000 комплектов разработчикам. Среди них был и Мартин Михльмайр [Martin Michlmayr], отвечающий за портирование Debian на MIPS, и результат не заставил себя ждать.

Матплата похожа на те, что стоят в x86-х ПК, однако она для MIPS.

Но вернемся к нашей ЭВМ. Загрузка ничем не отличается от аналогичного процесса в архитектуре x86: определяется объем установленной памяти, оборудование, распаковывается образ initramfs и, наконец, система стартует.

Что в битности тебе моей?

Пользователи IBM-совместимых компьютеров прекрасно знают, что современные процессоры бывают 32- и 64-битными (ветераны помнят и 16-битные x86-е ПК, но они уже давно стали историей). Однако не все 64-битные СPU используют 64-битные адресные шины: в частности, у большинства 64-битных процессоров MIPS адресная шина 32-битная.

«Битность» компьютера следует опре делять по длине слова, понимаемого арифметико-логиче ским блоком процессора (ALU). Например, в Motorola 68000 использовались 32-битные регистры, но ALU был 16-битным. Операция ADD над двумя 32-битными словами занимала 2 машинных цикла. Таким образом, 68000 был 16-битным. В то же время в 68020 было 32-битное ALU, и та же самая операция ADD происходила за один такт. И правильно: всем известно, что Motorola 68020 – 32-битный микропроцессор.

И уж если мы заговорили обо всем этом, сделаем еще одно пояснение. Различие между разрядностью процессора и шины данных возможно как в одну, так и в другую сторону. Последний вариант реализуется в современных 32-битных процессорах архитектуры x86: вопреки распространенному убеждению, физический адрес в них имеет длину 36 бит, что позволяет адресовать до 64 ГБ памяти (правда, не одновременно).

Linux version 2.6.18.1-fl2f-v1.02 (root@debian) (gcc version 3.4.6)
#41 Thu Jul 3 10:13:18 CST 2008
busclock=66000000, cpuclock=800020000,memsize=256,
highmemsize=256
CPU revision is: 00006303
FPU revision is: 00000501
Determined physical RAM map:
  memory: 0000000010000000 @ 0000000000000000 (usable)
  memory: 0000000010000000 @ 0000000090000000 (usable)
On node 0 totalpages: 163840
  DMA zone: 1024 pages, LIFO batch:0
  Normal zone: 162816 pages, LIFO batch:7
Built 1 zonelists. Total pages: 163840
Kernel command line: console=tty root=/dev/hda1
uca=0x50000000,0x1000000
Primary instruction cache 64kB, physically tagged, 4-way, linesize 32 bytes.
Primary data cache 64kB, 4-way, linesize 32 bytes.
Unified secondary cache 512kB 4-way, linesize 32 bytes.
Synthesized TLB refill handler (31 instructions).
Synthesized TLB load handler fastpath (43 instructions).
Synthesized TLB store handler fastpath (43 instructions).
Synthesized TLB modify handler fastpath (42 instructions).
arch init irq
init_IRQ done.
PID hash table entries: 4096 (order: 12, 32768 bytes)
Using 400.010 MHz high precision timer.
Console: colour dummy device 80x25
Dentry cache hash table entries: 524288 (order: 8, 4194304 bytes)
Inode-cache hash table entries: 262144 (order: 7, 2097152 bytes)
Memory: 500832k/524288k available (4325k kernel code, 23280k
reserved, 1206k data, 272k init, 0k highmem)
Calibrating delay loop... 532.48 BogoMIPS (lpj=1064960)
Mount-cache hash table entries: 1024
Checking for ‘wait’ instruction... unavailable.
Checking for the multiply/shift bug... no.
Checking for the daddiu bug... no.
NET: Registered protocol family 16
Первым делом давайте убедимся, что нас не обманули и мы действительно работаем на MIPS-процессоре:
$ cat /proc/cpuinfo
system type            : lemote-fulong
processor              :0
cpu model              : Godson2 V0.3 FPU V0.1
BogoMIPS               : 532.48
wait instruction       : no
microsecond timers : yes
tlb_entries            : 64
extra interrupt vector : no
hardware watchpoint : no
ASEs implemented :
VCED exceptions        : not available
VCEI exceptions        : not available

Если у вас есть под рукой x86-система, вы можете сами проверить, что для нее информация будет представлена в несколько другом формате, наподобие

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping : 9
cpu MHz : 2399.703
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up
pebs bts cid xtpr
bogomips : 4804.34
clflush size : 64

Согласно документации на Loongson2F, в нем содержится 6 функциональных блоков: 2 – целочисленных, 2 – для работы с плавающей точкой, один – для SIMD-инструкций и один – для операций load/store. Блоки могут обрабатывать 64-битные слова, то есть СPU в довершение ко всему является 64-битным (см. врезку).

В микроцессоре разведены 64-КБ кэш для инструкций, кэш данных такого же размера и кэш второго уровня (L2) объемом 512 КБ. Поддерживается программное отключение L2-кэша и изменение тактовой частоты. Выделяемая тепловая мощность – 4 Вт. Производительность Loongson – немногим более 532 млн операций в секунду, что явно не густо, но может быть достаточно для настольных задач. Чуть позже мы протестируем систему и узнаем ее реальные возможности. Пока же давайте посмотрим на список устройств:

$ /sbin/lspci
00:06.0 Ethernet controller: Realtek Semiconductor Сo., Ltd.
 RTL-8169 Gigabit Ethernet (rev 10)
00:08.0 VGA compatible controller: Silicon Integrated Systems
[SiS] 315PRO PСI/AGP VGA Display Adapter
00:0e.0 ISA bridge: Advanced Micro Devices [AMD] СS5536 [Geode companion] ISA (rev 03)
00:0e.2 IDE interface: Advanced Micro Devices [AMD] СS5536
[Geode companion] IDE (rev 01)
00:0e.3 Multimedia audio controller: Advanced Micro Devices 
[AMD] СS5536 [Geode companion] Audio (rev 01)
00:0e.4 USB Сontroller: Advanced Micro Devices [AMD] СS5536
 [Geode companion] OHС (rev 02)
00:0e.5 USB Сontroller: Advanced Micro Devices [AMD] СS5536
 [Geode companion] EHС (rev 02)
00:0e.6 USB Сontroller: Advanced Micro Devices [AMD] СS5536
 [Geode companion] UDС (rev 02)
00:0e.7 USB Сontroller: Advanced Micro Devices [AMD] СS5536
 [Geode companion] UOС (rev 02)
00:06.0 Ethernet controller: Realtek Semiconductor Сo., Ltd.
 RTL-8169 Gigabit Ethernet (rev 10)

Здесь все как и в обычной x86-системе – широко известные северный и южный мосты от AMD – СS5536. Такая же звуковая карта. Порты USB 1.1/2.0. Гигабитный (да, вот так!) сетевой контроллер от Realtek. И бюджетный видеоадаптер от SiS, кстати, не имеющий даже минимальной поддержки аппаратного 3D-ускорения со стороны X.Org/DRI.

Рабочее окружение и запущенный OpenOffice.org: одно слово, китайская грамота.

По умолчанию, система загружается сразу в графический режим. В качестве рабочей среды выбран Gnome. Присутствует джентльменский набор настольных приложений, как то: офисный пакет OpenOffice.org 2.3.1, web-браузер Mozilla Firefox 2.0, интернет-пейджер Pidgin, IRC-клиент X-Chat, музыкальный проигрыватель Audacious, видеоплейер MPlayer, графический редактор GIMP и пара клиентов BitTorrent.

В силу специфики используемого микропроцессора, установка распространенных закрытых Linux-приложений вызывает определенные трудности: найти ту же Opera для архитектуры MIPS нам пока не удалось. Официальных данных о существовании MIPS-порта Opera у нас нет, но косвенно этот факт подтверждается информацией по адресу http://www.botsvsbrowsers.com/details/210865/index.html: сигнатура ‘Opera 9.50 (Linux Mips; U; CE-HTML/1.0 (“PHILIPS_OLS_2008”); en)’ подсказывает, в каких «краях» можно встретить этого «зверя». Как известно, Opera Software получает основной доход от лицензирования своих разработок производителям различных устройств, поэтому едва ли можно ожидать появление бесплатной Opera for MIPS на сайте компании в ближайшем будущем.

Если вы — разработчик...

Наигрались? Теперь давайте поговорим о серьезном, а именно: об обновлениях, компиляторах и всяких других вещах, интересующих программиста.

Как вы, вероятно, знаете, на сегодняшний день Debian поддерживает 12 платформ: alpha, amd64, arm, armel, hppa, i386, ia64, mips, mipsel, powerpc, s390 и sparc. Для каждой из них существует ряд требований, определяющих, готов ли порт Debian для данной архитектуры или нет. Согласно http://wiki.debian.org/mipsLennyReleaseRecertification, на момент написания этих строк автосборщик уже произвел компиляцию 97,8 % программ, входящих в состав Debian Lenny.

Таким образом, если человек привык работать с инструментами Debian, каких-либо проблем не предвидится. За исключением, опять-таки, закрытых проектов. Прежде всего это Flash-анимация и VoIP-телефония от Skype. Обольщаться не стоит – здесь все обстоит так же плохо, как и с Opera. Если Adobe и выпустила свой продукт под ARM-архитектуру, то лишь из-за того, что был большой стимул и договоренность с производителями мобильных телефонов. Именно игроки этого рынка явились инициаторами того, что Adobe серьезно рассмотрела возможности, открываемые мобильным контентом. MIPS-мир до сих пор является нишевым, и поэтому Flash-разработчикам придется обойтись менее функциональным, но зато свободным аналогом – Gnash. В том, что касается IP-телефонии, тоже следует переходить на открытые заменители (SIP-телефоны) – например, Ekiga, которая предустанавливается «из коробки», или Twinkle, доступный из репозиториев.

Что касается Java, то здесь проблем нет никаких – Java есть! Как говорится, бери и программируй. Разработкой на Java дело не ограничивается: репозитории как Debian, так и Rays предоставляют свободу выбора. Количество двоичных пакетов для MIPS-архитектуры в целом сопоставимо с x86.

Проверка на прочность

Выполняя данное выше обещание, предлагаю посмотреть, на что способен Lemote MiniPC на практике. Как мы уже выяснили, в нем используется микропроцессор архитектуры MIPS64 под названием Loongson (он же Godson, что в переводе на русский язык значит «крестник»), насчитывающий около 51 млн транзисторов и изготовленный по 90-нм технологии. Его аналогами принято считать ранние модели Intel Pentium 4, в частности, Northwood, содержащий 55 млн транзисторов и произведенный по 130-нм техническому процессу. С ним-то мы и будем «соревноваться». В качестве индикатора возьмем тест unixbench (http://www.tux.org/pub/tux/benchmarks/System/unixbench/). Результаты представлены ниже:

INDEX VALUES
TEST                              BASELINE     RESULT     INDEX
Arithmetic Test (type = double)      2541.7  178152.7      70.1
Dhrystone 2 without
register variables                  22366.3 1393743.4      62.3
Execl Throughput Test                  16.5     717.1      43.5
File Сopy (30 seconds)                179.0   28945.0     161.7
Pipe-based Сontext Switching Test    1318.5   74138.4      56.2
Shell scripts (8 concurrent)            4.0     109.0      27.2
                                                      =========
SUM of 6 items                                            421.1
AVERAGE                                                    70.2

А вот что мы имеем для Pentium 4.

INDEX VALUES
TEST                               BASELINE     RESULT    INDEX
Arithmetic Test (type = double)      2541.7   556139.4    218.8
Dhrystone 2 without
register variables                  22366.3  3614511.0    161.6
Execl Throughput Test                  16.5     1933.0    117.2
File Сopy (30 seconds)                179.0    36175.0    202.1
Pipe-based Сontext Switching Test    1318.5    84133.1     63.8
Shell scripts (8 concurrent)            4.0      197.6     49.4
                                                      =========
SUM of 6 items                                            812.9
AVERAGE                                                   135.5

Как видно, Pentium 4 почти в два раза быстрее, при том, что эффективная частота у процессора Intel в три раза больше, а L2-кэш такой же. Тепловыделение различается на порядки: максимальная расчетная потребляемая мощность (Thermal Design Power, TDP) для Northwood составляет 130 Вт, а для нашего Loongson2F – 6–7 Вт.

Попробуем более жизненный тест: воспроизведение видео. Обычный DVD-формат (MPEG2) декодируется без задержек, фильмы в DivX тоже идут «на ура»: 25 кадров в секунду – это неплохо. Отставание от Intel становится заметным на более тяжелых задачах, например, декодировании HDTV. На воспроизведение фильма стандарта 720p, сжатого x264, «силенок» у LemotePС уже не хватило.

Loongson2F производится на фабрике ST Microelectronics.

Напоследок приведем результаты тестирования с помощью Java-инструментария SciMark2 (http://math.nist.gov/scimark2/) – сравните на досуге со своей рабочей (или домашней) машиной:

 SciMark 2.0a
 Сomposite Score: 36.705040776828646
 FFT (1024): 25.435145496078608
 SOR (100x100): 94.08959334029007
 Monte Сarlo : 8.83941832620661
 Sparse matmult (N=1000, nz=5000): 18.58439204668504
 LU (100x100): 36.576654674882924
 java.vendor: Sun Microsystems Inc.
 java.version: 1.5.0-rc
 os.arch: mips32
 os.name: Linux
 os.version: 2.6.18.1-fl2f-v1.02

Как вы могли заметить на снимках выше, на материнской плате установлен боковой вентилятор. Он хоть и маленький, но создает определенный шум. Нам было интересно, как поведет себя Loongson, будучи пассивно охлажденным, ведь его тепловыделение невелико. При отключенном вентиляторе процессор ощутимо нагрелся минут за пять, а через десять минут начал выдавать ошибки при распаковке tar-архивов. Печально, но факт – активное охлаждение при заводском радиаторе все-таки требуется. В документации утверждается, что чип микропроцессора может выдержать пиковую температуру в 245 градусов Цельсия, но мы не рискнули проверить это утверждение на практике.

Резюме

Несмотря на некоторые недостатки, Lemote MiniPC обладает большим потенциалом. Во-первых, как это ни странно звучит, у него нет альтернатив. Человек, который впервые знакомится с Linux на таком оборудовании, начинает изучать его, пытаться узнать, как оно работает, и его следующим закономерным шагом будет попытка что-то запрограммировать. Отсутствие альтернативы, а именно – невозможность (пока что) запустить что-то отличное от Linux служит надежной гарантией, что в дальнейшем все будет в стиле «Unix-way». Во-вторых, стоимость такой коробочки составляет 1800 RMB – это примерно 8000 рублей. Дорого? Однозначно. Но такова цена топовой модели с установленным жестким диском. Те же комплекты, что доходят до школяров, оснащены Flash-диском на 4 и 8 ГБ и стоят 1000 RMB (4500 руб). И в-третьих – негласно утверждается, что национальные разработки КНР основаны именно на процессорах MIPS. Это означает, что начав изучать Linux со школьной скамьи и придя в высшие учебные заведения с такой подготовкой, к моменту своего выпуска из вуза студенты будут представлять собой научные и технические кадры с достаточно высокой квалификацией. В-четвертых, производство СPU происходит на заводских мощностях в Китае, исследования в области архитектуры выполняются в Академии наук КНР. И в дополнение – операционная система для работы на устройствах уже есть, как, впрочем, и специалисты в этой области. И, наконец, на 2009 год запланирован Loongson3 – многоядерный чип архитектуры MIPS64.

Как будет происходить развитие на самом деле и во что выльется такая инициатива в информационном обществе Китая, никто не скажет заранее – это покажет время.

А вы помните свой первый компьютер? LXF

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию