2013-07-19 15 views
8

IEEE'nin neden 32 bit kayan nokta sayısı tekil kesinlik dediğini merak ediyorum. Bu sadece bir standartlaştırma aracı mıydı, yoksa 'bekar' aslında tek bir 'şey' anlamına geliyor.Neden "tek duyarlıklı" bir şamandıra?

Standart bir seviye mi? Hassas seviye 1 (tek), hassas seviye 2 (çift) vb. Her yeri aradım ve kayan nokta sayıları hakkında çok şey buldum, ama bu soruya tamamen cevap veren hiçbir şey.

+4

Benim tahminim, 32-bit yazmaçları olan bazı sistemlerde donanımda köklere sahip olmasıdır. Bu nedenle, bir "tek hassasiyetli" şamandıra, bir yazmacın içine sığacaktı, bir "çifte hassasiyet" şamandırası ise iki yazmaç gerektirecektir. Ama sadece bir tahmin - gerçek cevabın ne olduğunu görmek istiyorum. –

+0

Upvoting 'çünkü bu eğlenceli bir soru oldu. –

+2

Bir 32 bit kelime kaplar ve S/360 gibi klasik kelime mimarileri üzerinde yaptım. Diğer mimarilerde farklı olabilir. (Örneğin, IBM 70xx üzerinde bir adet 36 bit kelime işgal etti). "Double", elbette, iki kelimeyi kaplar. –

cevap

7

Şu an üzerinde çalıştığım makinede, bir şamandıra tek bir 36 bitlik yazmaç doldu. Bir çift, iki adet 36 bitlik yazmaç kaydeder. Donanımın 1 kayıt ve 2 kayıt versiyonunda çalışması için ayrı talimatlar vardı. Terminolojinin nereden geldiğini kesin olarak bilmiyorum ama mümkün.

+0

Elbette, Bell Labs (unix & C'nin evi) aynı aileden birkaç makineye sahipti. –

+3

Bu yüzden internet harika bir yer, bu sistem için montaj dili cep rehberi görüntüsünü buldum: http://www.trailingedge.com/misc/GCOS-GMAP-PocketGuide.pdf İki kayıt işlemlerinde çift kişilik bir "D" var. yani FAD, tek hassasiyetli kayan eklentidir, DFAD çift duyarlıklı kayan ekidir. Evet, "çifte" terminolojiyi kullanıyorlar. –

+0

"Bilimsel" sayıları destekleyen en eski ticari makine, IBM 700/7000 serisi oldu. 7094 "çift hassas" bilimsel sayıları tanıttı. http://en.wikipedia.org/wiki/IBM_700/7000_series –

0

Sadece tek uçlu kesimin 32 bit ve çift kesinlik kullanıldığında 64 bit kullanıldığında kayan nokta sayısını temsil eden bit sayısını ifade eder, yani bit sayısını iki katına çıkarır.

0

"Çift" terminolojisi oldukça doğru değil, ama yeterince yakın.

64 bit'lik bir float, fraksiyon için bitlerin 52 biti yerine, 32 bitlik bir floatta fraksiyon için kullanılan 23 biti kullanır - bu gerçekten "double" değil, ancak toplam bitleri iki katına çıkarır.

this question cevabı çok ilginçtir - bunu okumanız gerekir.

+0

Aslında bunu göndermeden önce okudum.Bazı ilginç bilgiler kesin, ama hiçbir şey sorumu cevaplamıyor. :) –

+0

Ve GE/Honeywell millet bizim işlemci için iddia edilen avantajlarından biri sadece biz 72 bit hassas (2X36) vardı, ama biz de ayrı bir 8 bit üslü kayıt vardı bizim çift hassasiyet gerçekten iki katına çıktı. –

+0

Farklılık IEEE float formatı bile icat edilmeden önce geri gider. 60'ların sonunda IBM 70xx makinelerinde 36 ve 72 bit float formatları vardı ve IBM S/360s 32 ve 64 bit float formatlarına sahipti. DEC'ın kendileri vardı, ama hem bekar hem de çift olduklarından eminim. (Ve sanırım birkaç mimarisi dörtlü uygular.) 60-bit CDC 6xxx serisinin ne olduğunu hatırlamaya çalışıyorum ama sanırım hem tek hem de çift olarak var. Bunlar her zaman "tek hassasiyet" ve "çift duyarlık" olarak biliniyordu. –

1

Donanım görünümüne ek olarak, çoğu sistemde Fortran "gerçek" türünü uygulamak için 32 bit biçim ve Fortran "çift duyarlıklı" türünü uygulamak için 64 bit biçim kullanılmıştır.