Merhaba TurkHackTeam üyeleri bugün Exynos M1'i inceleyeceğiz.
Exynos Mongoose 1 (M1), Samsung tarafından tüketici elektroniği için tasarlanmış bir ARM mikro mimarisidir. Bu, Samsung'un kendi bünyesinde geliştirdiği ilk yüksek performanslı düşük güçlü ARM mikro mimarisiydi.
Mongoose 1 (M1) mikro mimarisi, Samsung'un tamamen sıfırdan yapılan ilk şirket içi tasarımıydı. Bir tasarım ekibi kuruldu ve yaklaşık 3 yıl içinde gereksinimlerden bantlama aşamasına geçtiler. Tasarım, yalnızca yüksek performanslı, düşük güçlü, karmaşık CPU ve Sistem IP'leri geliştirmek amacıyla 2010 yılında kurulan Samsung'un Austin Ar-Ge Merkezi'nde (SARC) yapıldı. Tasarım ekibinin büyük bir kısmı, birçok eski AMD Austin mühendisinin yanı sıra eski IBM'cilerden oluşuyor. Mongoose 1 mikro mimarisi, baş mimar Brad Burgess tarafından yönetildi. Burgess daha önce bir AMD üyesiydi ve AMD'nin düşük güçlü bir x86 tasarımı olan Bobcat mikro mimarisinin baş mimarıydı.
Mongoose 1, ARMv8 ISA'yı uygulayan sıfırdan tamamen yeni bir mimariydi. Mimari, Thumb modları dahil olmak üzere hem AArch64 hem de AArch32'yi destekler. Mimari, başka bir düşük güçlü ARM IP çekirdeği ile eşleştirilmesi amaçlanan dört çekirdekli bir tasarımdır.
Adres üretmek için şube tahmincisi için iki işlem hattı aşaması vardır. Talimat önbelleğinden talimat almak ve bunları talimat kuyruğuna teslim etmek için üç döngü vardır. Üç kod çözme aşaması, iki yeniden adlandırma aşaması ve tek bir gönderme aşaması vardır.
Yürütme aşaması için her iki boru da bir zamanlama döngüsünden ve ardından bir kayıt okuma döngüsünden geçer. Komut yürütme, yürütülmekte olan ARM komutuna bağlı olarak bir döngü veya daha fazla sürebilir. Geri yazma ve iletme için tek bir döngü vardır. Yükleme işlemi durumunda, ek bir çeviri etiketi döngüsü, veri döngüsü ve bir hizalama ve geri yazma döngüsü vardır. Son satır (mavi renkte) yükleme için 22 döngü gecikme yoludur.
Ön uç, şube tahmincisi tarafından trafik akışı tahminlerine dayalı olarak önbellekten doğru bayt akışını almaktan ve talimatların kodunu çözen kod çözücüleri basit sinyallere beslemekten sorumludur. Ön ucun amacı, nihayetinde arka ucu mümkün olduğunca fazla talimat yürütmekle meşgul etmektir.
Dal tahmincisi yardımıyla, talimatlar seviye 1 talimat önbelleğinde zaten bulunmalıdır. L1I önbelleği 64 KiB, 4 yollu küme ilişkiseldir ve 256 girişten oluşan kendi iTLB'sine sahiptir. Her döngüden talimat kuyruğuna 24 bayta kadar okunur ve bu da çok kısa dal baloncuklarını gizlemelerine olanak tanır. Talimat kuyruğu, basit bir arabellekten biraz daha karmaşık bir bileşendir. Bayt akışı, başparmak modunda olduğu gibi çeşitli yanlış hizalanmış ARM talimatlarıyla uğraşmak da dahil olmak üzere, yaptığı ARM talimatlarına bölünür.
Exynos Mongoose 1 (M1), Samsung tarafından tüketici elektroniği için tasarlanmış bir ARM mikro mimarisidir. Bu, Samsung'un kendi bünyesinde geliştirdiği ilk yüksek performanslı düşük güçlü ARM mikro mimarisiydi.
Mongoose 1 (M1) mikro mimarisi, Samsung'un tamamen sıfırdan yapılan ilk şirket içi tasarımıydı. Bir tasarım ekibi kuruldu ve yaklaşık 3 yıl içinde gereksinimlerden bantlama aşamasına geçtiler. Tasarım, yalnızca yüksek performanslı, düşük güçlü, karmaşık CPU ve Sistem IP'leri geliştirmek amacıyla 2010 yılında kurulan Samsung'un Austin Ar-Ge Merkezi'nde (SARC) yapıldı. Tasarım ekibinin büyük bir kısmı, birçok eski AMD Austin mühendisinin yanı sıra eski IBM'cilerden oluşuyor. Mongoose 1 mikro mimarisi, baş mimar Brad Burgess tarafından yönetildi. Burgess daha önce bir AMD üyesiydi ve AMD'nin düşük güçlü bir x86 tasarımı olan Bobcat mikro mimarisinin baş mimarıydı.
Mongoose 1, ARMv8 ISA'yı uygulayan sıfırdan tamamen yeni bir mimariydi. Mimari, Thumb modları dahil olmak üzere hem AArch64 hem de AArch32'yi destekler. Mimari, başka bir düşük güçlü ARM IP çekirdeği ile eşleştirilmesi amaçlanan dört çekirdekli bir tasarımdır.
Adres üretmek için şube tahmincisi için iki işlem hattı aşaması vardır. Talimat önbelleğinden talimat almak ve bunları talimat kuyruğuna teslim etmek için üç döngü vardır. Üç kod çözme aşaması, iki yeniden adlandırma aşaması ve tek bir gönderme aşaması vardır.
Yürütme aşaması için her iki boru da bir zamanlama döngüsünden ve ardından bir kayıt okuma döngüsünden geçer. Komut yürütme, yürütülmekte olan ARM komutuna bağlı olarak bir döngü veya daha fazla sürebilir. Geri yazma ve iletme için tek bir döngü vardır. Yükleme işlemi durumunda, ek bir çeviri etiketi döngüsü, veri döngüsü ve bir hizalama ve geri yazma döngüsü vardır. Son satır (mavi renkte) yükleme için 22 döngü gecikme yoludur.
Ön uç, şube tahmincisi tarafından trafik akışı tahminlerine dayalı olarak önbellekten doğru bayt akışını almaktan ve talimatların kodunu çözen kod çözücüleri basit sinyallere beslemekten sorumludur. Ön ucun amacı, nihayetinde arka ucu mümkün olduğunca fazla talimat yürütmekle meşgul etmektir.
Dal tahmincisi yardımıyla, talimatlar seviye 1 talimat önbelleğinde zaten bulunmalıdır. L1I önbelleği 64 KiB, 4 yollu küme ilişkiseldir ve 256 girişten oluşan kendi iTLB'sine sahiptir. Her döngüden talimat kuyruğuna 24 bayta kadar okunur ve bu da çok kısa dal baloncuklarını gizlemelerine olanak tanır. Talimat kuyruğu, basit bir arabellekten biraz daha karmaşık bir bileşendir. Bayt akışı, başparmak modunda olduğu gibi çeşitli yanlış hizalanmış ARM talimatlarıyla uğraşmak da dahil olmak üzere, yaptığı ARM talimatlarına bölünür.