سلام ، خوب تمام حالتهایی که شما گفتید در حقیقت امکان پذیره
ببینید کلا سه روش اصلی برای پیاده سازی معماری big.little و سوئیچ کردن بین پردازنده ها وجود داره :
1-
سوئیچینگ خوشه ای (Clustered switching) :
تو این مدل هسته های قوی و ضعیف به دو دسته تقسیم میشن (خوشه اول = هسته های ضعیف - خوشه دوم = هسته های قوی) و در هر لحظه زمان بند سیستم عامل تنها یکی از این دو دسته رو میبینه
در حقیقت زمانی که بار کاری زیاد باشه هسته های ضعیف غیرفعال میشن (خوشه اول) و زمان بارکاری کم خوشه دوم از کار میوفته و خوشه اول شروع به کار میکنه -- برای مثال Samsung Exynos 5410 از این روش استفاده میکرد
2-
سوئیچر داخل هسته ای (In-kernel switcher) :
تو این نوع پیاده سازی هر هسته ی کوچک با یه هسته بزرگ ترکیب میشه و تشکیل یه هسته مجازی رو میده ، ولی در هر زمان تنها یکی از هسته های هر یک از این هسته های مجازی فعال میشن
خلاصه اینکه اگر 4 تا big و 4 تا little داشته باشیم اینا به صورت جفتی در کنار هم قرار میگیرن یعنی هر هسته big با یه little تشکیل یه هسته مجازی رو میدن و در نهایت 4 هسته ی مجازی داریم
تو این روش روند کار مشابه روش خوشه ای هست یعنی هنگامی که بار کاری رو هر هسته مجازی زیاد باشه قسمت big در غیر این صورت هسته little فعال میشه -- برای مثال Tegra 3 از این روش استفاده میکرد
3-
روش چند پردازنده ای ناهمگون (Heterogeneous multi-processing)
تو این روش اگر بار کاری کم باشه یا اولویت فرایندی کم باشه (مثل فرایندهای background یا پس زمینه) از هسته های little و اگر بار کاری زیاد باشه یا اولویت فرایندی زیاد باشه (مثل فرایندهای foreground یا پیش زمینه) از هسته های big استفاده میشه و اگر نیاز باشه تمام هسته ها با هم شروع به فعالیت میکنن -- برای مثال 7420 Samsung Exynos از این روش استفاده میکنه
موفق باشید