Apple Intel x86 prosessorlarından özünün xüsusi ARM64 Apple Silicon arxitekturasına (inqilabi M1 çipindən ən yeni M3 və M4 nəsillərinə qədər) keçdikdə, Mac-də hesablama paradiqmaları əsaslı şəkildə dəyişdi.

Nəhəng Vahid Yaddaş hovuzları, xüsusi Neyron Mühərrikləri, yüksək ötürmə qabiliyyətli GPU klasterləri və asimmetrik CPU konfiqurasiyaları (Məhsuldarlıq və Səmərəlilik nüvələri) ilə Apple Silicon indiyədək görünməmiş hesablama sıxlığı təmin edir.

Bununla belə, bir çox tərtibatçı hələ də müasir Apple avadanlığını ümumi x86 kompüteri kimi qəbul edən Rosetta 2 tərcüməsi və ya platformalararası icra mühitləri vasitəsilə köhnə verilənlər bazası proqramlarından istifadə edir.

Bu arxitektura araşdırmasında Apple Silicon-un verilənlər bazasının idarə edilməsi iş yüklərini necə icra etdiyini nəzərdən keçirir, ikilik emulyasiyasının yaratdığı itkiləri təhlil edir və yerli Swift və Metal verilənlər bazası proqramlarının yaradılmasının verilənlər bazası tərtibatçılarının iş sürətini nə üçün əsaslı şəkildə dəyişdirdiyini izah edirik.


1. Vahid Yaddaş Arxitekturası (UMA): PCIe məlumat ötürülməsi darboğazlarının aradan qaldırılması

Ənənəvi PC və Intel Mac arxitekturalarında CPU və diskret GPU ayrı, fiziki cəhətdən təcrid olunmuş RAM hovuzlarını idarə edir. 500.000 xanadan ibarət verilənlər bazası cədvəlini göstərərkən:

  1. CPU şəbəkə soketindən baytları sistem RAM-ına gətirir.
  2. UI freymvorku bu sətirləri formatlayır və təhlil edir.
  3. Sistem göstərilməsi üçün vertex buferini PCIe şini üzərindən GPU VRAM-ına köçürür.

Bu PCIe ötürmə şini kadrların atlanmasına, istilik səbəbindən sürətin azaldılmasına və yaddaşın çoxaldılmasına gətirən məşhur məhsuldarlıq darboğazıdır.

Apple Silicon üstünlüyü: Kopyasız yaddaş girişinin əldə edilməsi

M1, M2, M3 və M4 çiplərində CPU, GPU və Neyron Mühərriki vahid, yüksək ötürmə qabiliyyətli Vahid Yaddaş hovuzunu paylaşır (Max/Ultra çiplərində 100 GB/s ilə 400 GB/s-dən yuxarı sürətlərdə işləyir).

Yerli macOS tətbiqi sorğu nəticələri üçün yaddaş sahəsi ayıra bilər və GPU həmin eyni baytları Apple-ın Metal freymvorku vasitəsilə heç bir yaddaş kopyası olmadan birbaşa göstərə bilər:

// Zero-copy Metal buffer binding in native Swift
let metalBuffer = device.makeBuffer(bytesNoCopy: rawQueryPointer,
                                    length: bufferLength,
                                    options: .storageModeShared,
                                    deallocator: nil)

SQLOZ daxilində bu kopyasız konveyer 1.000.000 sətirdən ibarət verilənlər dəstlərində 120 FPS ProMotion sürüşməsini təmin edir və RAM istifadəsini 100 MB-dan aşağı saxlayır.

SQLOZ Native Metal Viewport and Unified Memory Pipeline


2. Rosetta 2 emulyasiyasının gətirdiyi xərc

Rosetta 2 Intel x86_64 ikilik fayllarının ARM64 Apple Silicon üzərində dinamik ikilik tərcüməsi vasitəsilə işləməsini təmin edən fövqəladə mühəndislik nailiyyətidir. Lakin giriş-çıxın və yüksək ötürmə qabiliyyətinin intensiv olduğu tərtibatçı alətləri üçün Rosetta 2 icra zamanı əhəmiyyətli itkilər yaradır:

  • Təlimat keşinə təzyiq: Tərcümə edilmiş x86 təlimatları təmiz, yerli ARM64 təlimatlarından 30%-ə qədər daha böyük yaddaş keşi izi yaradır.
  • Yaddaş ardıcıllığı modellərinin uyğunsuzluğu: Intel x86 Güclü Yaddaş Sıralamasını (TSO), ARM64 isə Zəif Yaddaş Sıralamasını tətbiq edir. Axın təhlükəsizliyini təmin etmək üçün Rosetta 2 əlavə yaddaş maneəsi təlimatları (DMB / DSB) daxil etməlidir; bu da çoxaxınlı verilənlər bazası şəbəkə oxuyucularında ölçülə bilən gecikmə yaradır.
  • Batareyanın daha tez tükənməsi: CPU təlimatlarının tərcüməsi prosessoru daha yüksək takt tezliklərində işləməyə məcbur edir və Apple Silicon-un ultra aşağı enerji sərf edən yuxu vəziyyətlərindən yan keçir.

Yalnız Intel üçün hazırlanmış verilənlər bazası müştərisini M3 MacBook Pro-da işlətmək hesablama potensialının əhəmiyyətli hissəsini israf edir.


3. Vektorlaşdırılmış SQL təhlili üçün ARM64 NEON-dan istifadə

Gigabaytlarla xam CSV ixracını, JSON faydalı yüklərini və ya cədvəl verilənlər bazası paketlərini təhlil edərkən CPU ilə məhdudlaşan sətir emalı çox vaxt əsas məhdudlaşdırıcı amil olur.

ARM64 arxitekturasına 128 bitlik SIMD (Single Instruction, Multiple Data — Tək təlimat, çoxsaylı verilənlər) vektor arxitekturası olan NEON daxildir:

  • NEON registrləri bir takt dövründə on altı 8 bitlik simvolu və ya dörd 32 bitlik tam ədədi emal edə bilər.
  • Yerli Swift LLVM vasitəsilə birbaşa NEON vektor təlimatlarına kompilyasiya olunur. Bunun sayəsində tokenləşdiricilər ayırıcıları (vergül, dırnaq işarəsi və yeni sətir kimi) saniyədə çoxsaylı gigabayt sürətlə şəbəkə ötürmə sürətində axtara bilir.

Java (DBeaver) kimi ümumi təyinatlı icra mühitləri və ya Chromium V8 (Electron alətləri) konkret verilənlər bazası protokollarının təhlili üçün əllə optimallaşdırılmış NEON vektor assembler kodunu etibarlı şəkildə yarada bilmir.


4. Asimmetrik nüvə planlaşdırması: P-nüvələri və E-nüvələri

Apple Silicon iki fərqli CPU nüvəsi tipini birləşdirir:

  • Firestorm / Avalanche / Everest Məhsuldarlıq nüvələri (P-nüvələri): Maksimal biraxınlı icra sürəti və yüksək IPC (takt dövrünə təlimat) üçün optimallaşdırılıb.
  • Icestorm / Blizzard / Sawtooth Səmərəlilik nüvələri (E-nüvələri): Davamlı fon texniki xidmətini yerinə yetirərkən enerjinin yalnız kiçik bir hissəsini sərf etmək üçün hazırlanıb.

Düzgün mühəndisliklə hazırlanmış yerli macOS tətbiqi tapşırıqları ağıllı şəkildə planlaşdırmaq üçün Apple-ın Grand Central Dispatch (GCD) və müasir Swift Concurrency (async/await) imkanlarından istifadə edir:

// Heavy query compilation on Performance Cores
Task(priority: .userInitiated) {
    let plan = await compileExecutionPlan(ast)
}

// Background SSH tunnel heartbeat on Efficiency Cores
Task(priority: .background) {
    await maintainTunnelKeepalive()
}

Fon əlaqə saxlamalarını və sxem keşlənməsini yalnız E-nüvələrinə yönləndirərək yerli tətbiqlər MacBook-un toxunduqda tamamilə sərin və tamamilə səssiz qalmasını təmin edir.


Xülasə

Apple Silicon nəhəng aparat sıçrayışını təmsil edir, lakin avadanlığın gücü yalnız onun üçün yazılmış proqram təminatı qədərdir. Tərcümə edilmiş x86 alətlərindən və ya resursları çox tələb edən virtual maşınlardan istifadə müasir aparatın böyük məhsuldarlıq potensialını istifadə olunmamış saxlayır.

SQLOZ kimi yalnız ARM64 və Metal üçün hazırlanmış alətlərdən istifadə etməklə tərtibatçılar müasir Mac avadanlığının təqdim etmək üçün nəzərdə tutulduğu tam məhsuldarlığı, batareya ömrünü və axıcı iş təcrübəsini əldə edirlər.

Real dünya sınaqlarını araşdırmaq üçün Verilənlər bazası GUI-niz nə qədər RAM istifadə edir? Apple Silicon üzrə müqayisəli sınaq məqaləmizi oxuyun və Yerli Swift macOS verilənlər bazası müştəriləri Electron-dan nə üçün daha sürətlidir yazımızla tanış olun.